2011-10-20 119 views
6

偶爾我在以下情況中找到自己: 我正在分支(稱爲master)上工作,並且正在編輯一些文件,但是當它提交的時間到了,我意識到我更願意提交一個新的分支(比如實驗)。換句話說,舊的分支(主)必須保持完好和一個新的分支應該創建,將是這樣的:git:將當前分支中當前未提交的工作提交到新分支

.. -- master -- new commit 

什麼是做到這一點的最簡單的方法?

目前,我承諾舊的分支,然後創建新的分支,最後重置舊的分支。但那真的很難看。

+2

[Git:如何將現有工作移至新分支?](http://stackoverflow.com/questions/1394797/git-how-to-move-existing-work-to-new-branch) – brendan

回答

4
git checkout -b branch  # create new branch out of current head 
git add <files>    # the changes you had done in your working directory will be carried over 
git commit -m "message"  # commit! 
+0

它在問題中提到「但是當它提交的時候提交我意識到,我寧願承諾一個新的分支」 – COD3BOY

+0

@Sanjay - 是的,你的觀點是? – manojlds

+0

@ user1004474 - 試試看。當您切換分支時,未分級和分級變化都會在那裏。 – manojlds

1

,如果你創建新的分支第一黨的稍微容易:

$ git checkout -b new_branch 
$ git commit 
+0

關鍵是我沒有提前計劃,因此首先進行了更改(可能會使用git add添加到索引中),然後決定進行分支。 – tros443

+0

@ user1004474:它仍然有效。你可以運行一個'git checkout -b new_branch',不管你是否有改變,以及它們是否被添加到索引中。 – hammar

+0

是的,你是對的 – tros443

0

另一種可能是你繼續前進,它們提交到master分支,然後在新HEAD切斷另一支(比如feature)。一旦完成,您可以將git reset掌握到提交之前的位置。

+0

好吧,你沒有閱讀'目前,我承諾舊的分支,然後創建新的分支,並最終重置舊的分支。但那真的很醜。「那麼。 – manojlds

+0

是的。我錯過了。雖然FWIW我不認爲這很醜陋。 –

+0

獲取使它容易做,但它是醜陋的IMO – manojlds