2014-02-19 96 views
2

所以我有点慌乱,并创建了一个分离的头,因为我想回到我的代码的以前版本。问题是:现在我无法推动任何东西,因为我的主要分支是独立的头部。如果我试图合并分支,那么它就会摆脱头部和任何东西。我如何将分离头上的提交返回主分支?我听说过这段代码:git merge HEAD @ {1},但我很害怕没有确认就尝试它,因为我害怕会发生什么。有人知道怎么做吗?合并独立头?

+0

你是否在使用TortoiseGit?我注意到,我有时会进入分离状态,并且在所需的分支上运行switch命令会再次返回到一个良好的连接状态。命令行也一样。 –

+1

不要害怕'git merge HEAD @ {1}'。 Git最棒的地方在于你可以随时在本地进行尝试,然后进行硬重置以撤消刚才的操作。如果你不喜欢'git merge HEAD @ {1}'的结果,那么你可以使用'git reset --hard HEAD ^'来撤消它。 – 2014-02-19 20:36:52

回答

0

假设您在进入独立头部状态后没有进行任何其他提交,可以使用以下命令返回到先前的提交(即最后一个分支的提示):

git checkout <name-of-branch> 
+0

如果你已经添加了提交,你应该做其他答案之一建议并运行git checkout -b newbranch。这将保持你的提交。 –

4

,因为我的主要分支是一个分离的头

不,那是不正确的。分离的HEAD是当你检出了一个分支而不是的提交。所以根据定义,如果你有一个分离的HEAD,你不在分支上。

我建议你创建从当前(分离)头一个分支,这样你就不会丢失任何信息,但可以再次自由走动:

git checkout -b newbranch 

之后,你会在未分离的HEAD再次在newbranch上,如果需要,您应该能够查看其他分支并合并其他分支中的newbranch

+0

噢好吧。这就说得通了。我想知道是什么让分离的HEAD与其他分支不同。所以我做了新的分支。现在我该怎么办? – user2253215