我熟悉在命令行上使用git blame
来显示哪个提交更改了文件的特定行。
是否有类似的功能来显示哪个提交最后更改了文件" mode" / flags?例如。设置或取消设置可执行标志。
答案 0 :(得分:5)
您可以将git log
与--summary
标志一起使用,并在输出中搜索模式更改:
git log --summary -- path/to/file
- 摘要
输出扩展标题信息的精简摘要,例如创建,重命名和模式更改。
答案 1 :(得分:3)
有些grep
和head
:
$ git log --summary --format=%h | grep 'mode change' -m1 -B2 | head -1
它将打印包含SHA-1
的上次提交的mode change
。如果要跟踪特定文件:
$ git log --summary --format=%h <FILE> | grep 'mode change' -m1 -B2 | head -1
答案 2 :(得分:1)
git log --summary --pretty=oneline | grep -B1 '^ mode change'
将输出如下:
$ git log --summary --pretty=oneline | grep -B1 '^ mode change'
2edfdb6dd322d31818998fb4fb588394d57fd1b4 Remove executable flag
mode change 100755 => 100644 path/to/file
--
8b8c539cfaeda7f15be53839561dcae4f4a69f5e Make the file executable
mode change 100644 => 100755 path/to/file