假設您維護2個分支,dev
和release
。GIT,在右分支進行更改
其他然後紀律,你如何強迫自己不要在release
和結帳到dev
更改?
Q1:如果您忘記這樣做,並在release
所做的更改,有沒有辦法將它們提交到dev
,而不是在release
中止?
Q2:是否有任何常見的技巧用於避免在分支中進行大量的改變而不是爲此設計的?
假設您維護2個分支,dev
和release
。GIT,在右分支進行更改
其他然後紀律,你如何強迫自己不要在release
和結帳到dev
更改?
Q1:如果您忘記這樣做,並在release
所做的更改,有沒有辦法將它們提交到dev
,而不是在release
中止?
Q2:是否有任何常見的技巧用於避免在分支中進行大量的改變而不是爲此設計的?
Q1:是啊,這是很簡單的。如果你意識到你提交到錯誤的分支:
git checkout dev
git cherry-pick release # you may need to cherry-pick several commits
git checkout release && git reset --hard HEAD^ # or reset to wherever you want
Q2:我在很大程度上依賴於混帳完成:
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
這不像您正在尋找的複雜答案,但將您當前的git分支放到提示符中會讓您獲得很大一部分路徑。你可以在那裏找到很多的食譜,但this one看起來很合理,有一些花裏胡哨的。
您還可以檢出how I do it。
我已經在我的shell中添加了一個小腳本,它總是向我顯示我在哪個分支上。我使用oh-my-zsh,其中大多數主題都包含此內容,但也有一些較輕的選項,如here。
這樣我就可以知道我正在從事哪一個分支並且通常不會搞砸。
如果您已經將提交給分公司,可以使用git rebase
和git cherry-pick
改寫歷史,把它們放在其他部門
如何爲例你知道你在哪個部門嗎?你能分享一下劇本嗎? – JAM 2012-08-01 23:17:40
在帖子中有一個鏈接...我會再次發佈它在超級混蛋中:http://vvv.tobiassjosten.net/git/add-current-git-branch-to-your-bash-prompt – klaustopher 2012-08-02 13:09:54
請提供你怎麼做 – JAM 2012-08-01 22:56:09