2014-02-19 93 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