撤销\删除Github提交记录(Commit)

撤销\删除Github提交记录(Commit)

AI导读:本文讨论了如何在Github上撤销或删除提交记录(Commit),特别是在误上传含有隐私信息的图片后。以图床仓库jankiny/img-bucket为例,首先需要克隆该仓库并查看提交记录,定位到需要恢复的版本。通过执行git reset --hard命令重置历史记录到选定版本,并使用git push origin HEAD --force将更改推送到Github,以确认异常提交已被撤销。文中提醒用户在执行撤销操作前应做好数据备份,以防止数据不可恢复丢失。

前言

使用Github作为图床,不小心上传了带有隐私信息的图片,及时删除后在Github的Commit记录中仍然能查看之前提交的内容。需要将改条commit删除。

删除Commit记录

以我们的图床仓库jankiny/img-bucket (github.com)为例,我们首先clone该仓库

1
git clone [email protected]:jankiny/img-bucket.git

我们进入对应的仓库和分支,执行git log命令,查看“commit记录”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
D:\WorkSpace\@Github\img-bucket [picgo-core ≡]> git log
commit ce221e8e5d65b1029bfb7e6db2ef3310ef4b612c (HEAD -> picgo-core, origin/picgo-core)
Author: ****
Date: ****

Delete img/image-20240304193540608.png

commit 95ea67a914a4656a4498c169ec13d4fa3913389e
Author: ****
Date: ****

Upload by PicGo

commit 2459dfd8550bb6fbf46dde8c2242627090ba6a5a
Author: ****
Date: ****

Upload by PicGo

定位需要退回的版本。commit ce221e8e5d65b1029bfb7e6db2ef3310ef4b612c是我删除图像所提交的commit,但删除后仍然可以在commit 95ea67a914a4656a4498c169ec13d4fa3913389e看到上传的图像,因此我们需要退回到commit 2459dfd8550bb6fbf46dde8c2242627090ba6a5a这个版本。

使用git reset --hard 2459dfd8550bb6fbf46dde8c2242627090ba6a5a,将历史记录重置到这个版本

1
2
D:\WorkSpace\@Github\img-bucket [picgo-core ≡]> git reset --hard 2459dfd8550bb6fbf46dde8c2242627090ba6a5a
HEAD is now at 2459dfd Upload by PicGo

最后,使用git push origin HEAD --force将撤销commit的操作推送到Github仓库

1
2
3
4
D:\WorkSpace\@Github\img-bucket [picgo-core ↓2]> git push origin HEAD --force
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:jankiny/img-bucket.git
+ ce221e8...2459dfd HEAD -> picgo-core (forced update)

到Github上确认异常的Commit已经被撤销。

注意,撤销操作会导致数据彻底丢失,建议在执行这些操作前应进行充分的备份,以防不可恢复的数据丢失。

作者

Janki

发布于

2024-03-04

更新于

2024-09-03

许可协议

评论