我在我的服务器上运行了几个chmod
。现在当我做git diff
那里,我看到很多old mode 100644 new mode 100755
显示git diff,忽略文件权限更改?
我也改变了一些文件那里。但我只是用git diff来显示文件的变化,忽略文件权限的变化。
我该怎么做?顺便说一句,我不希望GIT忽略这些文件权限更改。其实我想提交它们,我只是想让git diff在特定时刻不显示它们。
我在我的服务器上运行了几个chmod
。现在当我做git diff
那里,我看到很多old mode 100644 new mode 100755
显示git diff,忽略文件权限更改?
我也改变了一些文件那里。但我只是用git diff来显示文件的变化,忽略文件权限的变化。
我该怎么做?顺便说一句,我不希望GIT忽略这些文件权限更改。其实我想提交它们,我只是想让git diff在特定时刻不显示它们。
这将让Git忽略权限:
git config core.filemode false
将它们过滤在diff
结果,但不能忽视他们
git filter-branch -f --tree-filter 'find * -type f | xargs chmod 644 ' -- --all
git diff -G.
注:在最后的时间为命令的一部分。
你需要(我认为)至少Git版本1.7.10这个工作。 1.7.2至少太旧了。
1.7.9.5也看起来太老:( – ThorSummoner
“-G。”结尾的时期很重要,以防万一人像我一样密集,并认为这是句子的结尾。一个正则表达式(“。”在这里)添加/删除行 – PseudoNoise
请注意,这实际上是一个很好的破解。默认情况下,git会显示权限更改,并且此命令要求git仅显示影响至少一行的更改在这个文件中,这样做的工作,因为只有权限的更改不会影响任何行。如何处理二进制文件,以及文件在内容和权限两个方面都发生了变化时会发生什么? –
我不希望GIT忽略我的文件权限更改。我想让git diff不显示它们... –
是其中一种解决方案吗?我认为我处于相同的情况,似乎这两个答案都忽略与提交相关的权限,而不仅仅是查看已更改的文件。 – okwme
@HommerSmith,这应该适合你的需要:'git -c core.fileMode = false diff' 礼貌:http://stackoverflow.com/a/1580644/749232 – saji89