web-dev-qa-db-ja.com

なぜgitがプル後のマージコミットメッセージを要求するのですか?

最近、任意のgit pullに続いて、gitがテキストエディターの生成を開始し、マージコミットメッセージを要求しました。コミットメッセージは既に入力されています。プルを完了するには、ウィンドウを保存して閉じるだけです。

以前は、標準のコミットメッセージ(Merge branch 'dev' of remote.com:/repo into devの行に沿って)を使用して、静かにマージを実行していました。

最近gitをバージョン1.7.11.3に(homebrew経由で)更新しましたが、この動作を変更するために他に行ったことは考えられません。これは設定ですか、そうでなければ元の状態に戻る方法がありますか?

134
shanebonham

Git 1.7.10では、git開発者はマージコミットをあまりにも簡単に行えると判断しました。 このブログ投稿 で説明されているように、インタラクティブなコミットメッセージの動作を強制すると、それらのコミットメッセージがより詳細になり、不必要なマージの全体的な頻度を減らすことができます。

--no-editフラグを使用してこの動作を回避できますが、そうではありません。マージコミットは、履歴へのコミットと同様に、適切に構築する必要があります。あなたの歴史は有用なものでなければなりません。

148
Christopher

将来使用するためのショートカットを作成するには、次のいずれかを行います:

~/.gitconfigを次のように編集します。

[core]
    mergeoptions = --no-edit

または、ターミナルで次を実行します

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

53
Dallas Clark

まず、上記のクリストファーの答えにある警告に注意してください。

その後、自動マージコミットメッセージの編集を引き続き無効にする場合は、次の環境変数を設定します。

    GIT_MERGE_AUTOEDIT=no

この環境変数と「no」設定は、 git merge docページに記載されています。非対話的にマージする必要があるスクリプトでのみ使用することをお勧めしますが、もちろん、シェル環境の一部として設定して、効果をより永続的にすることもできます。

9
emackey