事情是这样的:
我有一个分支A。在分支A上,我提交了一系列更改。我对代码不满意,所以我在分支A中签出了以前的提交,然后我又做了一些更改,并在分支A上提交了它们。现在,我在任何地方都找不到这个提交。我是不是弄丢了这个代码?
发布于 2012-04-03 05:40:48
旧的提交仍在reflog中。
git reflog
这将显示一个提交列表,“丢失的”提交应该在其中。你可以把它变成一个新的分支。例如,如果SHA-1是分支,那么您可以在旧的提交处创建一个名为“ba5a739 -ba5a739”的新分支,方法是:
git branch new-branch ba5a739
请注意,当数据库被修剪时,“丢失的”提交将被删除。
发布于 2014-07-17 22:58:49
使用以下命令,您可能会发现丢失(悬空)的提交:
git fsck --lost-found
请注意,如果您当前的头是悬空提交,则不会将其列为丢失。
你可以在git-fsck(1) Manual Page上找到更多信息
然后,您可以在丢失的提交上创建分支:
git branch new-branch ba5a739
发布于 2012-04-03 05:40:20
你没有丢失它,Git仍然保留着一份副本(但目前任何分支都无法访问它)。您可以使用git reflog
命令查找丢失的提交。reflog跟踪分支头的历史位置,您可以使用它来查找分支头之前所指向的内容。
https://stackoverflow.com/questions/9984223
复制相似问题