2012-07-11 92 views
2

最近我開始對主分支進行一些更改以添加featureX。我創建了1個新文件並編輯了6個其他文件。我沒有犯過任何變化。目前,我想在一個單獨的分支上工作在featureX上,並保持原版不變,直到我確信featureX能夠正常工作。將未完成的更改從主分支移動到分支

我知道我應該在我開始爲featureX做出這些更改之前開始一個新的分支,但無論如何,我已經對主分支進行了未提交的更改,並將其恢復爲主分支featureX狀態?

+2

實際上,你可以切換樹枝和提交這些更改該分支,然後回到主。否則,你可以做'git stash'。 – birryree 2012-07-11 15:36:08

回答

4

創建一個新的分支(git checkout -b your_new_feature)應該做的工作 - 否則,你可以試試這個:

git stash 
git checkout -b your_new_feature 
git stash apply 
2

你需要的是stash掉的變化,然後應用到其他地方:

git stash 
git checkout -b other_branch 
git stash apply 

瞭解更多關於git stashhere


正如我剛纔瞭解到(和嘗試過),可以真正地檢出到你的分支和Git會記住哪些文件發生了變化。所以

git checkout -b other_branch 

應該足夠了。


注意:重要的是也要學會git stash。在這種情況下,沒有問題。但是,如果other_branch已經存在,它可能會有自己的更改,因此可能會有合併衝突。在這種情況下,簡單地寫

git checkout other_branch 

可能會失敗,這樣的消息:

error: You have local changes to 'whatever'; cannot switch branches.

在這種情況下,你應該使用上面的方法和git stash apply後,解決可能發生的衝突。

+0

這不是必需的,請參閱birryree評論 – CharlesB 2012-07-11 15:40:28

+0

@CharlesB,更新了我的答案。 – Shahbaz 2012-07-11 15:48:49

相關問題