2011-01-29 62 views
5

可能重複:
Git - Create a branch with current changes將創建一個Git分支刪除我的本地修改

我已經做了我的項目一大堆工作,我意識到應該在另一個已經完成科。如果我現在創建一個分支,我的當前更改是否需要簽入,或者在創建新分支時將它們擦除?我對GIT很陌生,只是想避免犯一個新手的錯誤。

+2

相關:http://stackoverflow.com/questions/389962 7/git-create-a-branch-with-current-changes – Dogbert 2011-01-29 10:15:12

+1

你是否已將更改提交到當前分支,或者他們只是躺在工作副本中? – 2011-01-29 13:34:57

+0

這些更改只是放在我的工作副本中。 – Nippysaurus 2011-01-30 02:33:32

回答

7

如果創建當前磁頭使用一個新的分支:

$ git checkout -b newbranchname 

然後更改將不會被覆蓋。

+1

非常正確,只要OP尚未對錯誤的分支提交任何更改。要理解的重要一點是分支僅僅是一個指向提交的指針,所以當你這樣做時,你所做的只是創建一個指向當前提交的新指針並檢出它 - 但由於它是相同的提交,它根本不需要觸摸你的工作樹。 – Cascabel 2011-01-29 15:40:55

1

他們將被移動到新的分支。但是如果你覺得不安全,你可以先備份當地的項目目錄。

2

在你的情況,bdonlan的答案適用,因爲創建一個新的分支不會觸及工作目錄。

在更一般的情況下,如果您嘗試切換仍然存在工作目錄更改的分支,Git會警告您並中止。無論哪種方式,最好不要失去變化。

在這種情況下,移動未提交的工作目錄更改爲一個新的分支,首先將它保存到Git的藏匿處:

git stash save 

然後創建和檢查分支:

git checkout -b new-branch-name 

然後彈出您的工作目錄從Git存儲更改:

git stash pop 
相關問題