4

master ブランチと安定したブランチを持つプロジェクトがあります - ブランチはずっと前に分岐しました。これで、stable ブランチにいくつかのコミットができました。master ブランチにもコミットしたいと考えています (バグ修正)。ブランチが分岐し、マージされていない変更がたくさんあるため、マージできません-4つのコミットが必要です。

そこで、チェリーピックを試してみました。ただし、トップレベルのモジュール名が「project-module」スキームから「module」に変更されたため、これは失敗します。チェリー ピッキングの場合、GIT は古いディレクトリ (古いブランチと同様) に新しいファイルを作成します。名前の変更は検出されません。おそらく、次の警告が表示されるためです。

warning: too many files (created: 278 deleted: 5364), skipping inexact rename detection

git format-patch + git am を試してみましたが、これでも古いディレクトリにファイルが作成されます。

マスター ブランチにコミットを適用するにはどうすればよいですか?

ありがとう、アダム

4

1 に答える 1

3

の値を変更することで、機能させることができると思います(ただし、時間がかかります)merge.renameLimit

merge.renameLimit

マージ中に名前変更の検出を実行するときに考慮するファイルの数。指定しない場合、デフォルトで diff.renameLimit の値になります。

チェリーピックもその価値を尊重すると確信しています。そうでない場合は、2 つのブランチの共通の祖先を見つけて、そこにコミットを適用し、それらを両方のブランチにマージして、マージ機構を使用していることを確認できます。(これは実際に私が最初に推奨することであることに注意してください。マージは重複したコミットを作成せず、履歴の流れを保持するため、チェリーピックよりもはるかに望ましいです。)

于 2010-10-22T13:08:52.970 に答える