我对Git的分支复杂性很陌生。我总是在一个分支上工作,提交更改,然后定期推送到远程源。
最近的某个时候,我对一些文件进行了重置,以使它们脱离提交阶段,后来又进行了重新base-I,以消除最近的几个本地提交。现在我处于一种我不太理解的状态。
在我的工作区,git日志显示了我所期望的一切——我在正确的火车上,有我不想要的提交,还有新的提交,等等。
但我只是推到了远程存储库,这是不同的——我在rebase中删除的几个提交被推送了,而本地提交的新提交不在那里。
我认为“master/origin”与HEAD是分离的,但我不完全清楚这意味着什么,如何使用命令行工具将其可视化,以及如何修复它。
我在搜索“You are in”separated HEAD“状态时发现了这个问题。
在分析了我在这里所做的事情之后,与我过去所做的相比,我发现我犯了一个错误。
我的正常流量是:
git checkout master
git fetch
git checkout my-cool-branch
git pull
这次我做到了:
git checkout master
git fetch
git checkout origin/my-cool-branch
# You are in 'detached HEAD' state.
问题是我无意中做到了:
git checkout origin/my-cool-branch
而不是:
git checkout my-cool-branch
修复方法(在我的情况下)只是运行上述命令,然后继续流程:
git checkout my-cool-branch
git pull