我注意到我的git存储库中有几个.txt
文件具有执行权限。我还注意到,当我chmod a-x *.txt
时,回购实际上显示了变化。以下是更新文件后git diff
的输出。
diff --git a/requirements.txt b/requirements.txt
old mode 100755
new mode 100644
有没有办法责怪文件的权限? (具体来说,我想了解谁为这些文件添加了a+x
权限。
答案 0 :(得分:5)
您可能已使用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
答案 1 :(得分:1)
Git只存储文件内容,并执行位值。 See this answer for further info。因此,它不会反映任何其他权限更改。
您可以使用:
git log --follow -p -- a/requirements.txt
查看文件的历史记录。