8

好吧,我刚刚犯了一个巨大的错误。

我正在做一个项目,并认为我在 master 分支工作。
所以我添加了我需要的文件,提交了它们,当我尝试推送到原点时,我得到了

Everything is up to date

我使用git branch并得到了

* (no branch)
* master

因此,在压力下,我将待处理的更改隐藏在(无分支)中并签出 master。现在我丢失了所有更改,因为我无法签出“不应命名”的分支。当我列出我只有的分支时

* master
4

1 回答 1

12

如果更改已提交,您并没有丢失这些更改。您只是没有对它们的命名引用。

尝试运行git reflog并在顶部附近寻找一条类似checkout: moving from <commit-id> to master. 然后,您可以使用它<commit-id>创建一个临时分支来检查您的更改并将它们带到master分支:

git checkout -b temp-branch <commit-id>

你可以合并这个分支,或者只是挑选必要的提交。

我希望这有帮助。

于 2012-08-09T11:16:06.537 回答