4

フィーチャー ブランチが master にマージされるタイミングを簡単に確認できるようにするために、--no-ffフィーチャー ブランチを master にマージするときに Git のオプションを使用できます。

入力せずにこれを実現する 1 つの方法--no-ffは、master への早送りマージを完全に無効にすることです。

git config branch.master.mergeoptions --no-ff

ただし、 master のアップストリームの変更を master のローカル コピーに単純にマージすると、早送りマージも防止されるため、これは不器用です (マージ コミットは通常git pullの s に対して作成されます)。

機能ブランチを master にマージする場合にのみmasterへの早送りマージを防止するように Git を構成する方法はありますgit pullか? --no-ffまたは、これを達成する唯一の方法を明示的に使用していますか?

4

1 に答える 1

2

注: pre-merge フックは存在しません。
2008年に導入され、当時は批判されていました((更新フックを使用して)サーバーに制御を実装した方がよいため)。
再導入の過程にあります(2012年9月

また、コミット前/コミット後のフックは、によって実行される自動コミットでは実行されませんgit merge

そう:

  • 開発者がプッシュしている git サーバーに更新フックを配置します (ただし、機能ブランチを早送りしたことに気付くには遅すぎる可能性があります)。
  • git-mergeまたは、ローカルリポジトリレベルでその制御を行うラッパーを作成(および配布、および維持...)します。

そうは言っても、「pull を使用する場合は早送りし、pull する場合は no-ff を使用する」で述べたように、使用しない--no-ffことには利点がgit bisectありgit blameます。そのため、機能の開発者は、 (1 つの巨大なコミットを作成するのではなく) マスター ブランチでそれらを早送り
する前に、自分の機能コミットを再編成 (多すぎる場合は少し押しつぶす) することをお勧めします。 詳細については、「 Git ワークフローを理解する」を参照してください。

于 2012-10-11T05:44:36.663 に答える