我注意到我的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仅存储文件内容并执行位值。
请参阅此答案以获取更多信息。因此,它不会反映任何其他许可更改。 您可以使用:
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 log --follow -p -- a/requirements.txt
,然后键入
--summary
git-log
Word的搜索。使用n
导航到下一个发生。这是一种比接受的答案更好的方法,因为它不需要更改代码库(结帐的结帐),并且由于相同的原因应该更快。
,据我所知,这是最好的方法,因为我进行了一些研究,在各种文档和实验中进行了研究,得出的结论是,GIT对许可模式的搜索功能很少。它无法搜索它们,对它们没有
git log --follow --summary -- requirements.txt
,并且缺少/mode
参数仅显示模式更改。因此,使用/\bmode\b
和通过输出的某种文本搜索是您最好的选择。