我可以让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或类似)。
请享用!
链接地址: http://www.djcxy.com/p/30015.html