バイナリ ファイル、swfs、jar、および flv がローカルで変更され、変更を取り込もうとすると、git はそれらをマージしようとし、競合を報告します。
次に、一時的なブランチに分岐し、ローカルで変更されたバイナリ ファイルをコミットし、再帰的な戦略を使用してプル後にそれらをマージします。 - 働き過ぎ。
バイナリファイルをマージしようとせず、これらのバージョンのどれを使用するかを尋ねるのではなく、gitに伝える方法はありますか?
バイナリ ファイル、swfs、jar、および flv がローカルで変更され、変更を取り込もうとすると、git はそれらをマージしようとし、競合を報告します。
次に、一時的なブランチに分岐し、ローカルで変更されたバイナリ ファイルをコミットし、再帰的な戦略を使用してプル後にそれらをマージします。 - 働き過ぎ。
バイナリファイルをマージしようとせず、これらのバージョンのどれを使用するかを尋ねるのではなく、gitに伝える方法はありますか?
ファイルにマージドライブを設定でき.gitattributes
ます(特定のサブツリーのみ、一部のファイルタイプのみ)
# choose the name of the merge driver to be use for all jar files
echo *.jar merge=keepTheir > dirWithJarFiles\.gitattributes
Git リポジトリの構成でマージ ドライバーを宣言します。
git config merge.keepTheir.name "always keep their during merge"
git config merge.keepTheir.driver "keepTheir.sh %O %A %B"
また
git config merge.keepMine.name "always keep mine during merge"
git config merge.keepMine.driver "keepMine.sh %O %A %B"
[merge "keepMine"]
name = always keep mine during merge
driver = keepMine.sh %O %A %B
私が示す例では、選択を求めませんが、マージ時に常に「私の」(または「あなたの」) バージョンを保持します。
ただし、このマージ ドライバによって実行されるスクリプトを適合させて質問をし、その選択をすべてのマージに適用することができます。