2012-07-31 247 views
107

最近,在任何git pull之後,git已經開始產生我的文本編輯器,並且要求提交合並提交消息。提交消息已經預填充,我只需保存並關閉窗口即可完成拉取操作。爲什麼git提示我提交後合併提交消息?

過去,它會默默地執行合併,並帶有標準提交消息(沿着Merge branch 'dev' of remote.com:/repo into dev的行)。

我最近更新git到版本1.7.11.3(通過homebrew),但不能想到我可能已經做了什麼來改變這種行爲。這是一個設置,還是有其他方式回到原來的狀態?

回答

122

在git 1.7.10中,git開發者決定合併提交可能太容易了。如在this blog post,中所解釋的,強制交互式提交消息行爲應該使得這些提交消息更加詳細並且可以減少不必要的合併的總體頻率。

您可以使用--no-edit標誌來避免此行爲,但是,不。合併提交,就像任何對歷史的提交一樣,應該很好地構建。你的歷史應該是有用的。

+0

非常好,謝謝你的信息。 – shanebonham 2012-07-31 17:42:37

+40

感謝您的幫助。我不同意合併提交應該始終是描述性的。我查看這個的原因是因爲自動合併每當我拉我要求我解釋爲什麼合併是必要的,這很快就變得不合理,因爲它甚至在沒有任何變化時這樣做。 – Brian 2012-11-13 15:57:56

+8

這也是避免這種行爲的有用資源:http://longair.net/blog/2009/04/16/git-fetch-and-merge/你應該避免'git pull';如果你只是想更新並且你認爲你沒有任何本地修改,就使用'git merge --ff-only';使用'git merge --no-ff',如果你真的試圖合併一個分支。 – Glyph 2013-04-24 22:00:29

40

要創建快捷方式以備將來使用,或者: -

編輯您的~/.gitconfig下列要求:

[core] 
    mergeoptions = --no-edit 

或執行中

終端

git config --global core.mergeoptions --no-edit

+12

這並不適用於我(OSX上的git),我已經正確設置了它,查看'git config --global core.mergeoptions'的輸出。 – jvannistelrooy 2015-01-15 16:19:30

+3

也不適用於我 – 2016-10-05 12:03:02

4

一以下,注意克里斯托弗在上面的回答中的警告。

然後,如果你仍然想禁用自動合併提交信息的編輯,設置這個環境變量:

GIT_MERGE_AUTOEDIT = no 

這個環境變量和它的「無」的設置都記錄在git merge文檔頁面上。建議僅在需要非交互式合併的腳本中使用它,但當然它可以設置爲shell環境的一部分,以使其效果更持久。