答案 0 :(得分:1)
有时我最终处于以下状态,其中
HEAD
不会显示在与主服务器相同的提交中。
正如上面的评论所述 - read all about HEAD
here。
回答你的问题:
每当您更改存储库状态时,您的HEAD
都会被修改并更新并指向当前提交。
detached HEAD
是指HEAD指向任何提交其他而不是最新提交。
在所描述的链接中,你可以阅读所有关于它的内容,并且有一个详细的解释是什么是头部,我不会在这里描述。
你能解释一下这个吗?我更改了
HEAD
上的某个文件,然后我checkout master
并且git svn rebase
因文件已更改而失败。所以我已经恢复了这些变化,并且还在主人身上做了git svn rebase 结果
HEAD
,master,git-svn在同一个提交中。我实际上什么都没做,现在修好了?那怎么样?
让我们把它分成几块并且解释每件作品:
我更改了
上的某个文件HEAD
您无法直接在HEAD上执行任何操作。 HEAD
只是对提交的引用。它是一个简单的文本文件,用于存储当前分支当前指向的提交的SHA-1。
然后我有
checkout master
现在你的HEAD
指向master上的最新提交。
...确实
git svn rebase
...还原了更改
您的HEAD
恢复到rebase之前的原始值 - 不应出现任何更改。 (不要将它与git revert
命令混淆)
结果
HEAD
,master,git-svn在同一个提交中 我实际上什么也没做,现在修好了?那怎么样?
如上所述 - 按照这样看。你开始散步了(在这个比喻中HEAD
存储的距离是你开始行走的距离)。你在这里和那里(你想要做的事情)走路然后你决定不喜欢散步而你回家了。 (你还原了rebase)。现在HEAD
已恢复其原始值,因为没有提交“工作”。
答案 1 :(得分:0)
对我而言,就像你有一个分支&gtt-svn'这是在master之前提交1次,你的HEAD在那次提交上。 你可以查看' git-svn'分支,然后将其推送/合并为主,如果这是你想要的?