2014-11-23 335 views
2

我剛剛發現我犯了一個很大的錯誤。當我打算在feature-x分支中完成時,我在master分支進行了幾天的更改。將主分支當前工作切換到新分支(在git中)

如何將當前分支(主)的所有更改切換到feature-x分支?
我還希望master分支處於乾淨狀態。 (當我在master上執行git status時,它應該不顯示更改,但是當我在feature-x上執行git status時,它應該顯示我迄今爲止所做的所有更改)。

回答

3

您可以

即假定所有最後提交的master是爲feature-x
如果這些提交了一些碩士混合,爲hoppjerka建議在the comments,你可以使用一個交互式的rebase:

git checkout master 
git rebase -i {[email protected]"3 days ago"}' 

你會放棄你不想上主的人。


我不得不說,我還沒有COMMITED。主服務器當前的所有更改都以git狀態顯示。所以我只需要移動變化

然後

git stash 
git checkout feature-x 
git stash pop 
+0

如果你只是想刪除掌握幾個提交,你可以做「git的重訂-i {主@‘4天前’}」並移除您已移至feature-x的提交。 – such 2014-11-23 09:11:54

+0

@hoppjerka true。我已將您的建議納入答案以提高可見性。 – VonC 2014-11-23 09:15:01

+0

我必須說我還沒有承諾。主目錄中的所有更改都顯示在'git status'中。所以我只需要移動更改。我不認爲我需要櫻桃採摘。 ..我想我只需要'git stash','git branch'和'git stash pop'。 – bodacydo 2014-11-23 09:42:07