当Git diff显示模式更改时,它意味着什么?

ped*_*dja 35 git

我正在尝试查看未分阶段的单个文件的更改.

首先我git status用来查看所有未分级的更改
然后例如:

git diff AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)

但我得到了这个输出

diff --git a/AndroidManifest.xml b/AndroidManifest.xml  
old mode 100755  
new mode 100644
Run Code Online (Sandbox Code Playgroud)

这意味着什么以及如何查看特定文件的更改

krl*_*mlr 25

最有可能的是,此文件的内容没有更改,只清除了可执行位.尝试实际更改文件,例如,向其添加一个空行,并查看git diff输出.

除文件内容外,Git还记录每个文件的可执行位的状态.如果您希望脚本在结帐后立即执行,那么在Linux系统上这是有意义的.另见以下两个相关问题:

如何让Git忽略文件模式(chmod)的变化?

如何从Git中的非分段更改中删除说"旧模式100755新模式100644"的文件?


Pol*_*ome 18

这意味着文件模式从755更改为644,但内容未更改.

git diff正是您正在寻找的 - 它显示了从非暂存文件到最后一次提交的更改.git diff --cached用于分阶段文件.

  • 我可以避免这种文件模式更改吗? (4认同)
  • @ ManuelSchneid3r当然可以。Git不会更改文件模式,它只会跟踪发生模式更改的情况。只需将其更改回其原始模式,或者不首先更改它。 (2认同)