如何找出文件模式更改的来源?

时间:2017-08-24 09:38:48

标签: git blame

我熟悉在命令行上使用git blame来显示哪个提交更改了文件的特定行。

是否有类似的功能来显示哪个提交最后更改了文件" mode" / flags?例如。设置或取消设置可执行标志。

3 个答案:

答案 0 :(得分:5)

您可以将git log--summary标志一起使用,并在输出中搜索模式更改:

git log --summary -- path/to/file

来自documentation

  

- 摘要

     

输出扩展标题信息的精简摘要,例如创建,重命名和模式更改。

答案 1 :(得分:3)

有些grephead

$ 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