60

ステージングされていない単一のファイルの変更を表示しようとしています。

最初にgit status、ステージングされていないすべての変更を表示するために使用します。次に例を示します。

git diff AndroidManifest.xml

しかし、私はこの出力を得ます:

diff --git a/AndroidManifest.xml b/AndroidManifest.xml  
old mode 100755  
new mode 100644

それはどういう意味ですか?また、特定のファイルの変更を表示するにはどうすればよいですか?

4

2 に答える 2

47

おそらく、このファイルの内容は変更されておらず、実行可能なビットがクリアされているだけです。たとえば、ファイルに空の行を追加して、実際にファイルを変更してみて、どのようなgit diff出力が表示されるかを確認してください。

ファイルの内容とは別に、Git は各ファイルの実行可能ビットの状態も記録します。チェックアウト直後にスクリプトを実行できるようにする場合、Linux システムでは理にかなっています。次の 2 つの関連する質問も参照してください。

Git にファイルモード (chmod) の変更を無視させるにはどうすればよいですか?

Git のステージングされていない変更から「古いモード 100755 新しいモード 100644」というファイルを削除するにはどうすればよいですか?

于 2013-05-25T09:27:19.690 に答える
23

これは、ファイル モードが 755 から 644 に変更されたことを意味しますが、内容は変更されていません。

git diffまさにあなたが探しているものです - ステージングされていないファイルから最後のコミットまでの変更を示しています。git diff --cachedステージングされたファイル用です。

于 2013-05-25T09:28:06.297 に答える