2012-12-03 53 views
0

此前我的代碼被一個可怕的bug肆虐所感染。經過長時間的戰鬥,我決定僅僅使用$git checkout來預先提交bug。

而現在$git branch返回一個帶有分支「(no分支)」標記的列表。我該如何合併(這是正確的嗎?)這個到master分支?

獎金問題:甚至「(無分支)」是什麼意思?它真的可以不是分支?

回答

3

是的,它確實可以是「沒有分支」。您正在運行一個名爲"detached head"的狀態。如果你不小心,你將失去你的改變。在分離的頭狀態下,git沒有更新任何引用。因此,如果您簽出其他分支,則可能會失去跟蹤您所在的位置以及隨之而來的更改。

首先,給你支了個名字:

$ git checkout -b new-branch-name 

接下來,如果你想使你的主分支看起來像新科,你有幾個選擇...一些可以失去的歷史主人,還有一些人會保留它。我會假設你想要後者。

做最簡單的事情是當你的新分支,運行:

$ git merge -s ours master 

這將在主帶,但不會施加任何的是由於-s ours選項更改(此選擇oursmerge strategy)。然後結賬主,並運行:

$ git checkout master 
$ git merge new-branch-name 

在這一點上,主人應該看起來像新的分支名稱。

0

即使我真的不知道發生了什麼,我仍設法解決問題。我做了$git checkout master以便在master分支上。

然後我創建了一個分支,$git branch name_of_my_new_branch 12the39id9843of8old38branch和poof,這個bug無處可見。爲什麼git以這種方式工作仍然是一個謎,但如果任何人有第一次遇到神祕的(no branch)分支,這可能至少可以幫助他們安全地到家鄉master分支。