4

a.uni というファイルがあり、ソリューションをマージする必要があります。しかし、git は a.uni をバイナリ ファイルとして扱います。ソリューションをマージすると、常に次のように表示されます。

警告: バイナリ ファイルをマージできません: a.uni (HEAD 対 549af46... テスト) エラー: 549af46 を適用できませんでした... テストのヒント: 競合を解決した後、修正されたパスをマークします ヒント: 'git add' または ' git rm ' ヒント: 'git commit' で結果をコミットしてください。どうもありがとう。

4

2 に答える 2

4

ファイルは実際にはテキスト ファイルであるため.uni、NUL 文字が含まれている必要があると思います (「Git がファイルをバイナリとして処理するかテキストとして処理するかを判断する方法」を参照してください)。

マージをどのように管理するかによって異なります。

「バイナリ ファイルをマージしないで選択するように git に指示する」で述べたよう.gitattributesに、ポリシーに従ってマージするファイルにマージ マネージャを指定できます。

少なくとも、「なぜ git はいくつかの cpp ファイルをバイナリとして扱うのですか?」 のように、試して指定することができます (まだ.gitattributesファイルをイオン化します):

*.uni -text crlf diff

Unicode ファイルの場合、「Git に UTF-16 ファイルをテキストとして認識させることはできますか?」を参照すると、次のことができます。

  • その形式をサポートするカスタム diff またはマージ ツールを定義します。 git config --global diff.tool vimdiff ; git difftool commit1 commit2
  • または次のような属性を定義します: *.uni diff merge -crlf

また、次のことも確認する必要があります。

于 2012-11-21T06:22:43.580 に答える