Gitにテキストファイルをバイナリとして処理させる方法を尋ねるいくつかの質問を見てきましたが、まだ反対はまだ見ていません。
テキストファイルをバイナリとして扱うgitの選択を変更するにはどうすればよいですか?一部の構成文字列でEOTとETXを使用して構成パラメーターの一部を分離するテキストファイルがあります。
たとえば、ソースコードには次のような行が含まれています。
INPUT 'ScrollRemote[EOT]no[ETX]NumDown[EOT]0[ETX]CalcWidth[EOT]no[ETX]MaxWidth[EOT]80[ETX]FetchOnReposToEnd[EOT]yes[ETX].....'
Gitリポジトリ内にファイルが実際に保存される方法は、表示されたときのファイルの処理方法とは関係ありません。したがって、git diff
プログラムは、2つのファイルを比較するように求められた場合、最初にリポジトリから完全なファイルを両方取得し、次にそれらに対して差分アルゴリズムを実行します。
通常、git diff
はファイル内の非印刷可能文字を探し、それがlooksである場合、ファイルはバイナリファイルである可能性があります。違いを示すことを拒否します。その理由はバイナリファイルの差分である可能性が高く、人間が読める可能性は低く、表示されるとおそらく端末を台無しにします。
ただし、git diff
オプションを使用して、ファイルを常にテキストとして扱うように--text
に指示できます。 1つのdiff
コマンドにこれを指定できます。
git diff --text HEAD HEAD^ file.txt
次を含む .gitattributes
ファイルを設定することで、Gitに常にこのオプションを使用させることができます。
file.txt diff
ここのdiff
属性は次を意味します。
diff
属性が設定されているパスは、NULなどのテキストファイルには通常表示されないバイト値が含まれている場合でも、テキストとして扱われます。
Git Attributes を見てください-特定のファイル拡張子をテキストとして扱うように指定することで、あなたを助けることができるかもしれません。
テキストファイルを比較またはマージしようとしていて、gitがバイナリファイルであると言っている場合、エンコードが異なる場合があります(たとえば、UTF-8とANSI)。 この投稿で答えた を参照してください。