2015-12-04 83 views
2

我嘗試用git改善我的工作流程。修復功能分支上的一般bug

爲了開發一個新功能,我根據我的Dev分支創建了一個myFeature分支。

在處理此功能時,我在應用程序中發現了一個常見錯誤。我想將我的固定在Dev分支,但我寫的修復,而在myFeature分支,所以git的禁止我,直到我承諾修復當前分支

git checkout dev 
error: Your local changes to the following files would be overwritten by checkout: 

切換分支是有辦法,我可以提交此修復程序,而無需將該文件複製出我的git repo,對其執行git checkout --,更改爲Dev分支並複製固定文件?

回答

3

我看到兩種方法可以做到這一點:

  1. git stash - >git checkout Dev - >git stash pop - >git commit
  2. git commit產生SHA->git checkout Dev - >git cherry-pick SHA

對於這兩種解決方案,您之後會做git checkout myFeature - >git rebase Dev

+0

爲什麼'git stash pop'而不是'git stash drop'? – IggY

+0

@IggY因爲您想將更改應用到'Dev'分支。 'git stash drop'只是刪除了你的修復。 –

+0

謝謝尼爾斯:) – IggY

1

隱藏更改(實質上創建一個匿名提交),以便工作目錄乾淨。然後更改分支,將存儲應用到新分支,並提交。

git stash 
git checkout dev 
git stash pop 

git stash pop有可能像合併提交;如有必要,您需要解決這些問題,但您可以像平常一樣git addgit commit

+0

爲什麼'git stash drop'因爲根據Nils_M在其回答下的評論,它會刪除修復? – IggY

+0

因爲這兩個詞太相似了,我寫錯了。 – chepner

+0

艾哈:)謝謝! – IggY