此前我的代碼被一個可怕的bug肆虐所感染。經過長時間的戰鬥,我決定僅僅使用$git checkout
來預先提交bug。
而現在$git branch
返回一個帶有分支「(no分支)」標記的列表。我該如何合併(這是正確的嗎?)這個到master
分支?
獎金問題:甚至「(無分支)」是什麼意思?它真的可以不是分支?
此前我的代碼被一個可怕的bug肆虐所感染。經過長時間的戰鬥,我決定僅僅使用$git checkout
來預先提交bug。
而現在$git branch
返回一個帶有分支「(no分支)」標記的列表。我該如何合併(這是正確的嗎?)這個到master
分支?
獎金問題:甚至「(無分支)」是什麼意思?它真的可以不是分支?
是的,它確實可以是「沒有分支」。您正在運行一個名爲"detached head"的狀態。如果你不小心,你將失去你的改變。在分離的頭狀態下,git沒有更新任何引用。因此,如果您簽出其他分支,則可能會失去跟蹤您所在的位置以及隨之而來的更改。
首先,給你支了個名字:
$ git checkout -b new-branch-name
接下來,如果你想使你的主分支看起來像新科,你有幾個選擇...一些可以失去的歷史主人,還有一些人會保留它。我會假設你想要後者。
做最簡單的事情是當你的新分支,運行:
$ git merge -s ours master
這將在主帶,但不會施加任何的是由於-s ours
選項更改(此選擇ours
merge strategy)。然後結賬主,並運行:
$ git checkout master
$ git merge new-branch-name
在這一點上,主人應該看起來像新的分支名稱。
即使我真的不知道發生了什麼,我仍設法解決問題。我做了$git checkout master
以便在master
分支上。
然後我創建了一個分支,$git branch name_of_my_new_branch 12the39id9843of8old38branch
和poof,這個bug無處可見。爲什麼git以這種方式工作仍然是一個謎,但如果任何人有第一次遇到神祕的(no branch)
分支,這可能至少可以幫助他們安全地到家鄉master
分支。