"git blame"文件访问控制修饰符



我注意到我的 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部分,请假设badcommitHEAD 。您可以通过运行以下命令序列轻松找到有问题的提交(和罪魁祸首(:

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

以查看文件的历史记录。

最新更新