4

当社の git ワークフローは次のようになります。すべてのチーム メンバーには独自のブランチがあり、develop というメイン ブランチからプルおよびプッシュします。

私がgitに行くたびにgit pull develop、自動的にテキストエディタ(私の最愛のvim)が開き、Explain why this merge is necessary.

これはなぜですか、どうすればそれを取り除くことができますか?

4

2 に答える 2

3

git pullコマンドは、デフォルトでは、 a の後に agit fetchが続きますgit merge。マージは、「早送り」が可能かどうかを確認します。これは、マージされるブランチからのコミットをブランチに追加するだけです。しかし、ブランチに変更が加えられた場合、それはしばしば不可能です。

この場合、マージはマージ コミットを作成して、ブランチの変更とともにプルされるブランチの変更を蓄積します。このコミットにはメッセージが必要です。これは、( --no-edit パラメーターを使用して) 'merged into' の行に沿ったものにデフォルト設定できます。しかし、一般的には役に立たないと見なされています。エディターが起動され、マージのために意味のあるメッセージを入力できるようになります。

メッセージを編集するか、デフォルトを使用するかに関係なく、「余分な」コミットが作成され、ブランチで実行している作業に必要なコミットではないため、履歴が乱雑になります。他のブランチで起こっていることにあなたのブランチを「追いつく」ためだけにそこにあります

不要なコミットをブランチに追加しない代替手段は、 を使用することgit pull --rebaseです。これにより、余分なコミットの手間をかけずに、他のブランチのコミットに追いつくことができます。これについて詳しく説明している記事は次のとおりです: pull with rebase

于 2013-02-01T16:30:12.683 に答える
2

これはで見ることができますgit-merge

- 編集

--編集なし

デフォルトのマージ メッセージをさらに編集するには、成功したマージをコミットする前にエディタを呼び出します。--no-edit オプションを使用して、注釈付きタグをマージするときに自動生成されたメッセージを受け入れることができます (これは一般的に推奨されません)。この場合、git merge は自動的にエディターを生成し、タグの GPG 検証の結果見られる。

古いスクリプトは、ユーザーがマージ ログ メッセージを編集できないという過去の動作に依存している可能性があります。注釈付きタグをマージするために git merge を実行すると、エディターが開かれます。このようなスクリプトを更新された動作に簡単に調整できるようにするために、環境変数 GIT_MERGE_AUTOEDIT をスクリプトの先頭で no に設定できます。

export GIT_MERGE_AUTOEDIT=noそして、私はそれを追加することでそれを愛しています.bash_profile

于 2013-02-01T16:02:46.883 に答える