我可以让git diff忽略权限更改
我无意中改变了我整个树的权限,并单独提交其他内容更改。
我使用类似于:
tar -czf deploy.tar git diff --name-only v1 v2
用两个标签之间的修改文件生成一个tar,问题是,现在因为权限的改变,几乎所有我的树被列为修改。
有没有办法,我可以告诉git diff
忽略只有权限更改的文件?
这会告诉git忽略权限:
git config core.filemode false
我有意删除源代码文件(〜26K文件)的执行权限后,有这个问题。 然后,git diff说所有的文件都改变了! core.filemode的答案不能帮助我,因为这只会影响你的工作目录的差异,而不是与repo中的2个提交差异。
答案是使用(大吓人)filter-branch命令。 特别是,你需要键入的是:
git filter-branch -f --tree-filter 'find * -type f | xargs chmod 644 ' -- --all
从你的工作目录的根。 当然,如果你需要重新尝试,一定要先制作你的回购副本(cp -pr〜/ repo.git〜/ repo-orig.git或类似)。
请享用!