2015-12-08 32 views
0

我的git工作流是編輯一些文件,根據需要添加更改(通常使用add -p),然後git commit -v查看VIM中的更改,然後編寫消息並提交它,如果我很高興,或者如果我認爲它仍然需要工作,退出編輯器而不保存消息。git,合併後不要這麼容易

但隨着合併,通常它:1. git的合併,二化解矛盾,3 git add文件清除衝突結束後...

然後在這一點上,我盡我平時git commit -v檢查更改,如果我認爲我仍然需要一些工作,只要退出編輯器而不保存提交消息,仍然會使用默認的「合併提交123455」提交它。

我該如何阻止這種情況?我不想讓我犯錯的錯誤。這簡直讓我瘋狂:/

+2

我想現在的問題是,你爲什麼試圖合併未準備合併的工作? – Makoto

+1

我更喜歡用'git diff --cached'而不是'git commit -v'來檢查潛在提交,但爲了避免使用默認消息提交合並,您可以切換到「刪除整個提交文本放棄承諾「。 – torek

+0

我同意@Makoto在合併之前首先查看您的代碼。 GIT MERGE將始終導致描述合併操作的提交。如果你想要,你可以從一個分支創建補丁,並將其應用於另一個分支。檢查你的代碼,然後提交! – manishrw

回答

1

我認爲您需要在保持此工作流程的較早時間點開始。檢查

git merge --no-commit 

由於出文檔:

隨着--no提交執行合併,但假裝沒合併,做 不自動提交,給用戶提供一個機會來檢查和進一步的調整提交前的合併結果爲 。

但是,您應該在嘗試合併之前檢查所做的更改。所以,只要在合併操作之前做一個git diff,你就不會在這種情況下結束。

+0

這裏的所有答案是好的和好的建議,但這是一個我相信「解決」它。我可以輕鬆地添加一個別名合併,無需提交合並,並具有一致的行爲。 – gcb

0

像建議我也會先用git diff --cached查看更改,但如果你想取消目前的承諾,同時採用git commit -v你可以隨時與非零的錯誤代碼退出vim,這應該放棄提交,例如::cq

+0

沒有人使用':cq'來退出vim,當他們不想提交:(大家的手指記憶,至少是我的,直接進入':q!'爲「我沒有準備好這個提交」,因爲這是什麼工作,每次你不合並(這是90%的時間你提交的東西) – gcb

0

而不是保留單獨的合併提交的默認提交消息,你應該能夠完全刪除它,這將取消提交過程。

+0

這正是我想要避免的。我大部分時間都是這樣做的,但有時候我會忘記,因爲當我輸入'git commit -v'時,已經有一個提交信息是不正常的。界面中的不一致是所有人爲錯誤的母親! – gcb