我正在使用分階段和未分階段更改的混合功能分支。高優先級的任務進來,我該怎麼做?突發高優先級任務的Git工作流程
看起來git checkout
不會觸及分階段和未分階段的更改。所以,我應該:
git add -A
git commit -am "must stop working to fix bug!"
git checkout master
git checkout -b "bug_branch"
我正在使用分階段和未分階段更改的混合功能分支。高優先級的任務進來,我該怎麼做?突發高優先級任務的Git工作流程
看起來git checkout
不會觸及分階段和未分階段的更改。所以,我應該:
git add -A
git commit -am "must stop working to fix bug!"
git checkout master
git checkout -b "bug_branch"
有關git的絕妙之處在於,它能夠爲您提供多種實現目標的方式,讓您可以將git調整爲適合您的工作流程,而不是將自己的工作流調整爲git。
有多種方法可以做到這一點,如:
藏匿的更改,然後切換到錯誤的分支,然後應用藏匿時,你與你的bug修復完成。
本地提交更改,切換到錯誤分支修正錯誤,然後修正內容本地提交歷史與git rebase -i
提交當前更改到一個新的本地分支,切換到錯誤的分支,修復bug ,然後將您的更改從本地臨時分支合併回您的功能分支。
可以暫時提交您的工作使用git stash save
藏匿,修復錯誤或做你需要做的任何高優先級的任務,然後用git stash apply
應用藏匿回來繼續工作。
的'git的stash'一個特別的優點是,它節省了工作樹和索引,並恢復雙方,這是如果你關心這個區別的話,這很有用 – 2012-02-26 22:31:31
是你可以做到這一點,或替代那種git commit
,你可以做一個git stash
也:)然後,一旦你與bug修復完成後,你可以通過git stash apply
http://gitready.com/beginner/2009/01/10/stashing-your-changes.html
git stash是你的朋友。假設你是你bug_fix分支
git stash save "must stop working to fix bug!"
git checkout master
.. do some stuff
git commit -am 'foo'
git checkout bug_fix
git stash pop
注意,「git的藏匿處彈出」恢復藏匿的變化,這是你想要的最長時間。如果您想要將更改應用於存儲並將其保存在存儲中,請使用git stash apply。如果你想你的藏匿適用於多個分支這是有用的:
git checkout branch1
git stash apply
git checkout branch2
git stash apply
git checkout branch3
git stash apply
等
感謝您的多種選擇。對於下一個讀者來說,這將是很好的例子。 – 2012-02-28 05:02:50