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

标签 git

我注意到我的 git 存储库中的几个 .txt 文件具有执行权限。我还注意到,当我执行 chmod a-x *.txt 时,repo 实际上显示了更改。这是更新文件后 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 blame"文件访问控制修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44598046/

相关文章:

git - 在 svn 到 git 迁移期间提交作者的电子邮件地址错误

git pull 无法分配内存

git - 如何提交单个暂存文件?

Git:如何重新规范化所有修订版中所有文件的行尾?

git - Git merge --squash 和 --no-commit 之间的区别

git - 建立一个实验室来试验 GIT

git - 如何 "resolve fatal: Not a git repository"?

windows - 为什么 git 要我输入密码?

git - 使用 Git 将对文件的更改分发到最后一次提交以修改每个文件(fixup last commit that changed the file)

git - 切换 Git 分支时更改的文件会发生什么?