目前不在任何分支+ git提交+结帐不在任何分支。 我有没有放松我的改变?
当我提交更改时,我当时并不在任何分支上。 我没有真正注意到这个消息,并检查了另一个分支。
我如何检索我的更改? 我无法合并或签出,因为没有合并分支。
你可以使用git reflog
来获得你在“no branch”(一个分离的HEAD)中所做的提交的提交散列,并将它合并到你当前所在的分支(master也许)
像git merge HEAD@{1}
你也可以git rebase -i
并从reflog中“挑选”你想要的提交。
在做了一些工作后,我处于一个相似的状态:
Lilith:经理KelSolaar $ git状态
目前不在任何分支上。
我发布了一个git日志来查看我的最后一个提交哈希:
Lilith:经理KelSolaar $ git log
提交49984303037e970d637161c3154b7fd7d6ae3a43作者:KelSolaardate:Wed Oct 5 22:41:31 2011 +0100
Introduce new "QObject" components category and rename existing ones to "Def
然后我检查了我的主分支:
Lilith:经理KelSolaar $ git checkout master
以前的HEAD位置是4998430 …引入新的“QObject”组件类别并将现有的组件重命名为“Default”和“QWidget”。
切换到分支“主”
最后,我使用提交哈希合并:
Lilith:经理KelSolaar $ git merge 49984303037e970d637161
更新141bc69..4998430
快进
src / manager / component.py | 2 + –
…
git checkout -
将切换回到以前的分支:
Thu Feb 21 12:50 AM /src/test ((08f84f4...)) $ git checkout master Warning: you are leaving 1 commit behind, not connected to any of your branches: 08f84f4 Fix everything Switched to branch 'master' Thu Feb 21 12:50 AM /src/test (master) $ git checkout - HEAD is now at 08f84f4... Fix everything Thu Feb 21 12:50 AM /src/test ((08f84f4...)) $
你的提交没有消失,你可以通过让git向你显示隐藏的提交来恢复,并把它们放回临时分支。
请参阅此答案的说明。
使用“git reflog”,它显示了你的git命令历史结果的提交哈希。 然后你可以“git co hash”,当你find正确的,设置/为它做一个分支。
你永远不会“不在任何分支”。 你可能已经在名为master
的分支上,但是当你提交的时候你在一个分支上。 所以那个提交是SOMEWHERE。
使用git log
来查看历史logging。 您可以使用git reset
以及时返回(包括,可选地,将更改保留在工作目录中)。