我想得到我的分支中的所有文件的列表,最好是在树视图中,以及它们最后修改过的提交的哈希值(即不是文件本身的哈希值,而是提交的哈希值) 。有没有一个干净的git命令来执行此操作,还是我真的必须爬过日志?
此问题与How do I find the most recent git commit that modified a file?有关,但我想获取所有文件的列表,例如:
6f88a51 abc.h
3f5d6fb abc.cpp
3f5d6fb bcd.h
1964be2 bcd.cpp
...
答案 0 :(得分:2)
rm -rf xx*/
那应该是伎俩,在bash上
答案 1 :(得分:1)
答案 2 :(得分:1)
命令:
$ git ls-files -z \
| GIT_PAGER= xargs -0 -L1 -I'{}' git log -n 1 --format="%h {}" -- '{}'
f5fe765 LICENSE
0bb88a1 README.md
1db10f7 example/echo.go
e4e5af6 example/echo_test.go
...
注意:
git ls-files
列出了递归添加到git的所有文件(与find
不同,它排除了未跟踪的文件和.git
)xargs -L1
为每个输入参数(文件名)xargs -I{}
允许使用输入参数(文件名){}
符号
git ls-files -z
和xargs -0
更改\n
到\0
的分隔符,以避免文件名中出现空格问题GIT_PAGER
阻止git log
将其输出汇总到less