我注意到我的 git 存储库中的几个.txt
文件具有执行权限。我还注意到,当我chmod a-x *.txt
回购时,实际上显示了变化。这是更新文件后git diff
的输出。
diff --git a/requirements.txt b/requirements.txt
old mode 100755
new mode 100644
有没有办法责怪文件的权限?(具体来说,我想找出谁为这些文件添加了a+x
权限。
您可能已经将git diff
命令与一些指定的提交一起使用,以获得问题中显示的结果。假设命令是:
git diff goodcommit..badcommit requirements.txt
如果您省略了..badcommit
部分,请假设badcommit
是HEAD
。您可以通过运行以下命令序列轻松找到有问题的提交(和罪魁祸首(:
git bisect start badcommit goodcommit
git bisect run test ! -x requirements.txt
并等待完成。最后,您将收到一条消息,例如:
running test ! -x requirements.txt
8088473809f905bd8f3d5825983e8c9fe82b10c6 is the first bad commit
commit 8088473809f905bd8f3d5825983e8c9fe82b10c6
Author: author
Date: Fri Jun 16 23:05:49 2017 +0100
commit message
要恢复正常工作,只需运行:
git bisect reset
Git 只存储文件内容,并执行位值。有关详细信息,请参阅此答案。因此,它不会反映任何其他权限更改。
您可以使用:
git log --follow -p -- a/requirements.txt
以查看文件的历史记录。