3

git 操作でバイナリ ファイルを処理する簡単な方法はありますか? この場合の私の理想 - .mo ファイル (バイナリ .po メッセージ) の「マージ」 - は、新しいファイルを優先し、古いファイルの上にコピーすることだと思います。

では、これを行うように git を構成できますか、それとも常に手動で行う必要がありますか?

4

3 に答える 3

3

gitattributes ファイル(このSO questionを参照) にカスタム マージ ドライバーを追加できます。これは、ファイルに対してのみ、関連するディレクトリにのみ追加できます。*.mo

echo *.mo merge=keepTheir > dirWithMoFiles\.gitattributes
git config merge.keepTheir.name "always keep theirduring merge"
git config merge.keepTheir.driver "keepTheir.sh %O %A %B"

次のようにkeepTheir.sh:

mv -f $3 $2
exit 0
于 2010-03-09T12:25:07.560 に答える
0

基本的に、この概念はここでうまく説明されていました 特定のファイルで競合するマージのためにローカルバージョンを常に選択するようにgitに指示するにはどうすればよいですか?

ここに記載されている手順を簡素化する bash スクリプトを次に示します https://github.com/equivalent/git_to_svn_behavior-

(Readme で実行する手順)

于 2011-08-24T17:33:43.643 に答える
0

最善の方法は、生成されたファイル (.mo ファイルなど) をバージョン管理下に置かないことです。

それでも Git に保持したい場合は、標準的な方法を使用して競合を解決してください。

たとえば、競合するファイルのいずれかのバージョンを取得できます。

git checkout --theirs -- dir/file.mo
git checkout --ours -- dir/file.mo

またはgit mergetool、競合するファイルの両方のバージョンを提供する which を使用します。

于 2010-03-09T12:12:22.777 に答える