[英]Restore a deleted Commit
我今天在做一个项目,我做了一个月的更改,然后我对项目进行了重大更改,这破坏了整个项目。
所以我使用
git reset --hard <commit>
进而
git push origin HEAD --force
在我之前的所有更改都消失之后,因为我选择了错误的提交来重置(不确定)。 每当我现在编写任何 git 命令时,我都会得到(不是 git 存储库)。
我打开了 Bit Bucket,两个提交都消失了。 有什么办法可以恢复那个提交吗?
该项目是 Grails 项目上的一个常规项目。 我正在使用智能
默认情况下,您的本地存储库将提交的副本保留至少 30 天。 Bitbucket 上的存储库可能没有。
如果您尚未删除本地存储库,请在那里查找提交。 使用git reflog
或git reflog <branchname>
。 HEAD
的 reflog 保存了HEAD
过去表示的哈希 ID。 给定分支名称(例如master
的引用日志包含该分支名称过去表示的哈希 ID。
如果您在执行git reset --hard <commit>
时在分支xyzzy
上,则xyzzy@{1}
表示xyzzy
在此git reset --hard
之前持有的哈希 ID,因此git reflog xyzzy
将显示您想要的提交. 您现在可以git reset --hard <commit>
到该哈希 ID,将所有数字加一,即xyzzy@{1}
现在是xyzzy@{2}
以及您上次选择的错误提交哈希 ID现在是xyzzy@{1}
。 同时xyzzy
(又名xyzzy@{0}
)现在是您这次刚刚选择的哈希 ID。
您现在可以git push origin HEAD
或git push origin xyzzy
将这个哈希 ID(和提交,如果他们丢失了)发送到 Bitbucket 的 Git,并要求他们将他们的xyzzy
设置为这个哈希ID。 如果此操作最终丢失了一些提交,您将只需要--force
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.