1. ホーム
  2. git

[解決済み] なぜGitはこのテキスト・ファイルをバイナリ・ファイルとして扱うのですか?

2022-04-14 10:08:24

質問

なぜgitはこのようなことを言うのでしょうか?

$ git diff MyFile.txt
diff --git a/MyFile.txt b/MyFile.txt
index d41a4f3..15dcfa2 100644
Binary files a/MyFile.txt and b/MyFile.txt differ

テキストファイルではないのですか?

を確認しました。 .gitattributes で、空です。なぜこのメッセージが表示されるのでしょうか?

追加されました。

があることに気づきました。 @ のファイルパーミッションで、これは何ですか、これは原因ですか?

$ls -all
drwxr-xr-x   5 nacho4d  staff    170 28 Jul 17:07 .
drwxr-xr-x  16 nacho4d  staff    544 28 Jul 16:39 ..
-rw-r--r--@  1 nacho4d  staff   6148 28 Jul 16:15 .DS_Store
-rw-r--r--@  1 nacho4d  staff    746 28 Jul 17:07 MyFile.txt
-rw-r--r--   1 nacho4d  staff  22538  5 Apr 16:18 OtherFile.txt

解決方法は?

これは単純に、gitがファイルの実際の内容を検査するときに(それは 知る 明示的に伝えたい場合は、属性ファイルを使用します - man ページを参照してください)。

ファイルの内容を検査したところ、基本的なアスキー文字ではないものが見られました。UTF16なので、バイナリだと思うような「おかしな」文字があるのだろうと思います。

ファイルに国際化(i18n)または拡張文字フォーマットがあるかどうかをgitに伝える方法があります。私はその設定方法を十分に理解しているわけではありませんが、RT[Full]Mが必要かもしれません。)

編集:SOで検索してみると can-i-make-git-recognize-a-utf-16-file-as-text(テキストファイルとして認識する)。 というのがあって、これがヒントになりそうです。