在更改并推送头部后恢复提交
Revert commits back after the head was changed and pushed
前几天犯了一些烂代码,今天改了,把一个老头推给master
换头前:
提交 4
提交 3 - 错误代码从这里开始
commit 2 - 我在这里设置头部并推送
提交 1
换头后:
提交 2 - 当前头
提交 1
问题是现在我想要那些 'bad commits' 回来。
有可能找回吗?
您可以使用git reflog
来解决您的问题:
git reflog
a8U3Ild... HEAD@{10}: commit 3
e3Noj1q... HEAD@{11}: commit 4
找到您删除的提交的 SHA-1
哈希值。您想要的提交是 "commit 4" 的提交,它是您回滚之前分支的负责人。然后您可以像这样将当前分支重置为 "commit 4":
git checkout master
git reset --hard e3Noj1q
如果您删除的提交仍在引用日志中引用,您应该能够按照此处的说明恢复它们:
http://git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery#Data-Recovery
git reflog 的手册页:http://git-scm.com/docs/git-reflog
git fsck 的手册页:http://git-scm.com/docs/git-fsck
前几天犯了一些烂代码,今天改了,把一个老头推给master
换头前:
提交 4
提交 3 - 错误代码从这里开始
commit 2 - 我在这里设置头部并推送
提交 1
换头后:
提交 2 - 当前头
提交 1
问题是现在我想要那些 'bad commits' 回来。
有可能找回吗?
您可以使用git reflog
来解决您的问题:
git reflog
a8U3Ild... HEAD@{10}: commit 3
e3Noj1q... HEAD@{11}: commit 4
找到您删除的提交的 SHA-1
哈希值。您想要的提交是 "commit 4" 的提交,它是您回滚之前分支的负责人。然后您可以像这样将当前分支重置为 "commit 4":
git checkout master
git reset --hard e3Noj1q
如果您删除的提交仍在引用日志中引用,您应该能够按照此处的说明恢复它们:
http://git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery#Data-Recovery
git reflog 的手册页:http://git-scm.com/docs/git-reflog
git fsck 的手册页:http://git-scm.com/docs/git-fsck