我曾在我的生产服务器上运行过几个chmod
。现在当我在那里执行git diff
时,我会看到很多old mode 100644 new mode 100755
。
我还更改了一些文件。但是我只想使用git diff来显示文件的更改,忽略文件权限的更改。
我该怎么办呢?顺便说一下,我不希望GIT忽略这些文件权限的更改。实际上,我想将它们提交,我只是想在一个非常特定的时刻不让git diff显示它们。
我曾在我的生产服务器上运行过几个chmod
。现在当我在那里执行git diff
时,我会看到很多old mode 100644 new mode 100755
。
我还更改了一些文件。但是我只想使用git diff来显示文件的更改,忽略文件权限的更改。
我该怎么办呢?顺便说一下,我不希望GIT忽略这些文件权限的更改。实际上,我想将它们提交,我只是想在一个非常特定的时刻不让git diff显示它们。
git diff -G"."
-G
标志会过滤掉任何未添加或删除匹配正则表达式的行的文件。在本例中,提供的正则表达式是"."
,它匹配任何行。因此参数-G"."
将过滤掉没有添加或删除行的文件。
您需要(我想)至少 Git 版本 1.7.10 才能使此方法工作。1.7.2 太旧了,至少需要更新到该版本。
这将告诉git忽略权限:
git config core.filemode false
筛选在diff
结果中的项目,但不忽略它们。
git filter-branch -f --tree-filter 'find * -type f | xargs chmod 644 ' -- --all
git -c core.fileMode=false diff
致谢:https://dev59.com/ZXI-5IYBdhLWcg3w-92b#1580644 - saji89