【问题标题】:What does it mean when Git diff shows mode changes?Git diff 显示模式更改是什么意思?
【发布时间】:2013-05-20 20:00:24
【问题描述】:

我正在尝试查看单个未暂存文件的更改。

首先我使用git status 查看所有未暂存的更改,然后例如:

git diff AndroidManifest.xml

但是我得到了这个输出:

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

这是什么意思?如何查看特定文件的更改?

【问题讨论】:

    标签: git git-diff


    【解决方案1】:

    很可能,这个文件的内容没有改变,只有可执行位被清除了。尝试通过添加一个空行来实际更改文件,然后查看git diff 的输出。

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

    How do I make Git ignore file mode (chmod) changes?

    How do I remove files saying "old mode 100755 new mode 100644" from unstaged changes in Git?

    【讨论】:

    • 是的,你是对的,我对文件进行了更改,现在它显示了差异。谢谢
    【解决方案2】:

    表示文件模式从755变为644,但内容没有改变。

    git diff 正是您要查找的内容 - 它显示了从未暂存文件到最后一次提交的更改。 git diff --cached 用于暂存文件。

    【讨论】:

    • 我可以避免这种文件模式更改吗?
    • @ManuelSchneid3r 当然可以。 Git 不会更改文件模式,它只会跟踪模式更改的发生。要么简单地把它改回原来的模式,要么一开始就不要改变它。
    猜你喜欢
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    相关资源
    最近更新 更多