git-svn HEAD与master不同

时间:2016-04-04 06:52:11

标签: git svn git-svn

有时我最终处于以下状态,其中HEAD不会显示在与主服务器相同的提交中。

我想必须检查HEAD并且提交后必须转到HEAD。但是如何在同一次提交中将两个指针都调平?

enter image description here

2 个答案:

答案 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'分支,然后将其推送/合并为主,如果这是你想要的?