为什么我的Git仓库进入独立HEAD状态?
我今天结束了一个独立的头,与上面描述的相同的问题:git push说尽管我有本地更改,但一切都是最新的
据我所知,我没有做任何不寻常的事情,只是承诺并从我当地的回购中推出。
那么我怎么最终得到一个detached HEAD
?
任何不是您分支机构名称的提交结账将为您提供分离的HEAD。 表示分支尖端的SHA1仍会给出分离的HEAD。 只有结算本地分行名称才能避免该模式。
请参阅使用分离的HEAD进行提交
HEAD分离时,提交工作正常,除非没有命名分支更新。 (您可以将其视为匿名分支。)
例如,如果您先签出一个“远程分支”而不先跟踪它,那么最终可能会有一个分离的HEAD。
请参阅git:切换分支而不分离头部
我刚刚转载了这个意外:
列出远程分支
git branch -r
origin/Feature/f1234
origin/master
我想结账一个本地,所以我剪贴:
git checkout origin/Feature/f1234
普雷斯托! 分离HEAD状态
You are in 'detached HEAD' state. [...])
解决方案#1:
检查时不要将原origin/
在我的分支规范的前面:
git checkout Feature/f1234
解决方案2:
添加-b
参数,该参数从远程创建本地分支
git checkout -b origin/Feature/f1234
或
git checkout -b Feature/f1234
它会自动回落到原点
如果您试图通过重新检出文件来取消所做的更改并且没有完全正确地使用语法,则很容易发生。
你可以看看git log
的输出 - 你可以在上次成功提交后粘贴git log
的尾部,我们都可以看到你做了什么。 或者你可以粘贴它并在freenode IRC的#git
很好地提问。