如何使用git log
或类似命令的参数组合来查找更改文件权限的提交记录?
我可以使用git log -p <file>
并使用grep命令查找“new mode”,但这似乎并不是很令人满意。
如何使用git log
或类似命令的参数组合来查找更改文件权限的提交记录?
我可以使用git log -p <file>
并使用grep命令查找“new mode”,但这似乎并不是很令人满意。
git log --summary
和grep
列出所有修改了给定文件权限的提交记录git log --summary {file} |grep -e ^commit -e"=>"|grep '=>' -B1 | grep ^commit
{file}
参数,将列出所有提交,其中任何文件的权限都被修改了。我认为没有一个选项可以直接导致一个“更改文件权限”的消息,但是你可以使用 git log --raw -- file.sh
命令,并查看该文件的前两列条目,即旧模式和新模式。你可以使用一个简单的 awk
脚本来比较这两个模式...
Git不存储文件权限。它使用(umask调节的)777来检出可执行文件和目录,对于普通文件则使用666,如下所示(当然,ls输出被截断了)
$ git checkout empty
$ umask 0
$ git clean -dfx
$ git checkout master
$ ls -l
-rw-rw-rw- 1 jthill jthill 4012 May 13 13:30 tag.c
drwxrwxrwx 2 jthill jthill 4096 May 13 13:30 builtin
-rwxrwxrwx 1 jthill jthill 22332 May 13 13:30 git-am.sh
lrwxrwxrwx 1 jthill jthill 32 May 13 13:30 RelNotes -> Documentation/RelNotes/1.8.2.txt