我想知道如何使用git blame来知道谁创建了一个目录.
当我尝试:
git blame DIRECTORY_NAME
Run Code Online (Sandbox Code Playgroud)
我明白了:
fatal: no such path DIRECTORY_NAME in HEAD
Run Code Online (Sandbox Code Playgroud)
顺便说一下,目录是空的.有什么建议?
Jon*_*ter 16
尝试获取该目录的日志,并使用-p选项查看发生的确切更改.
$ git log -p <path to directory>
Run Code Online (Sandbox Code Playgroud)
这仍然可能无法告诉您究竟是谁创建了目录,因为git似乎更关注文件内容,但您可能会从第一次添加任何内容时看到一些有用的线索.
到git blame当前目录:
git ls-files -z | xargs -0n1 git blame
Run Code Online (Sandbox Code Playgroud)
我从这里改编了上面的内容:https ://gist.github.com/Alpha59/4e9cd6c65f7aa2711b79
一个非常非常慢的单行代码,它会通过 gitblame 并查看每个作者贡献了多少行。
看来我需要按空格键和 Q 至少一次才能完全滚动列表。
我创建了一个小函数,它循环遍历所有文件并创建类似于 GitHub 的目录责任视图。
输出格式为:
FILENAME COMMIT-HASH Commit-DATE AUTHOR COMMIT-MESSAGE
Run Code Online (Sandbox Code Playgroud)
看起来像这样
myfile1 abceeee 2019-04-23 19:26 Radon8472 Added file example
readme.md abd0000 2019-04-24 19:30 Radon8472 Update Readme-File
Run Code Online (Sandbox Code Playgroud)
FILENAME COMMIT-HASH Commit-DATE AUTHOR COMMIT-MESSAGE
Run Code Online (Sandbox Code Playgroud)
用法示例:
blamedir类似的blamedir ./blamedir DIRECTORY_NAME/BLAME_FORMAT您可以通过更改函数中的变量来随意更改显示格式。
我认为也应该可以将此函数设置为 git-alias 。