2016-11-22 15 views
2

ファイルが変更されたことを示しています。しかし、git difftoolを実行してBeyond Compareでファイルを開くと、バイナリと同じファイルが表示されます。たとえ私が16進モードでBeyond Compareを開いても、ファイルは同じものとして表示されます。ファイルがバイト単位で同じでも、Gitはファイルを変更して表示しています

Windows 10でgit 2.9.2.windows.1を実行しています。PowerShellのgitとmsys git bashのプロンプトからgitを実行すると、この問題が発生します。

誰もこれまでこれを見たことがありますか?注:ファイルの16進数の比較では、行末の違いが明瞭に見えるので、行末の変更については言及していません。

+0

のようなものを表示していましたgit status -vを実行することにより、二重にチェックすることができます。たとえば、 'git ls-files'に' someFile'がありますが、あなたのファイルシステムに 'somefile'があり、これはあなたが観察している動作を引き起こす可能性があります。 – janos

+0

Gitはどのように変更を示していますか? 'git status'経由で、または' git diff'( 'git difftool'ではなく)経由でですか? – sschuberth

+0

'git diff'を実行すると、ファイルのすべての行が変更されたように表示されますが、私が知る限り、内容は変更されません。 difftoolを使用していた理由は、ファイルの実際のバイト数を表示することでしたが、それらは同じように見えます。 – quanticle

答えて

2

これは、ファイルモードの変更、つまりUnixモードのビットである可能性があります。 Windows(Unixモードのビットを持たない)でもGitはファイルモードを追跡します。 git update-index --chmod=+x <filename>を実行してください。あなたは、このケースでは場合は、システム内の実際のファイルに一致していることを確認し、gitのLS-files`を `の出力にファイル名を確認してください

$ git status -v 
On branch version-defines 
Your branch is up-to-date with 'origin/version-defines'. 
Changes to be committed: 
    (use "git reset HEAD <file>..." to unstage) 

     modified: circle.yml 

diff --git a/circle.yml b/circle.yml 
old mode 100644 
new mode 100755 
+0

私は 'git status -v'を実行しましたが、' git status'とほとんど同じ出力しか表示されませんでした。私は間違いなくファイルモードの変更や他のメタデータの変更を見ていませんでした。 – quanticle

関連する問題