“ git责任”文件访问控制修饰符

问题描述 投票:0回答:3

我注意到我的git存储库中的几个文件已执行权限。我还注意到,当我这样做时,回购实际上显示了变化。这是更新文件后

.txt
的输出。
chmod a-x *.txt
有一种方法可以指责文件的许可? (具体来说,我想找出谁添加了这些文件的
git diff

权限。
	

您可能已经使用了一些指定的命令,以获取问题中显示的结果。假设命令是:

diff --git a/requirements.txt b/requirements.txt
old mode 100755
new mode 100644

git
3个回答
5
投票
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

1
投票

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

0
投票
以通过Pager Mene触发搜索

git-log

Word的搜索。使用
n
导航到下一个发生。
这是一种比接受的答案更好的方法,因为它不需要更改代码库

(结帐的结帐),并且由于相同的原因应该更快。

,据我所知,这是最好的方法,因为我进行了一些研究,在各种文档和实验中进行了研究,得出的结论是,GIT对许可模式的搜索功能很少。它无法搜索它们,对它们没有

git log --follow --summary -- requirements.txt
,并且缺少
/mode
参数仅显示模式更改。因此,使用/\bmode\b
和通过输出的某种文本搜索是您最好的选择。
    
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.