git log输出就像svn ls -v一样

Ott*_*tto 6 svn git

有没有办法让git给我输出像svn ls -v一样.基本上是每个文件的列表以及最后编辑该文件的人?像这样:

filea.txt     Someone Else
fileb.txt     Another Person
Run Code Online (Sandbox Code Playgroud)

也许甚至用SHA来识别发生变化的提交?

CB *_*ley 9

在git中提问并不是一个非常自然的问题,但是你可以用这样的东西来实现你想要的东西.

for a in $(ls); do git log --pretty=format:"%h%x09%an%x09%ad%x09$a" -1 -- "$a"; done
Run Code Online (Sandbox Code Playgroud)

这将遍历当前目录中的每个文件,并在其git log上执行以查找影响它的最后一次提交.

它效率不高,因为它会搜索每个文件的git历史记录,并且不会重复使用以前搜索的结果.然而,它是一个单行.

  • @koppor完整列表位于git-log的手册页上,在PRETTY FORMATS部分下,格式为:<string> listing:[git-log手册页](https://www.kernel.org/pub/software /scm/git/docs/git-log.html) (3认同)

dyl*_*nfm 7

你想玩git日志及其漂亮的格式.这是一个没有完全解决你想要的问题的例子,但是应该让你顺利进行:

git log --pretty=format:"%h: %s -- %an"
Run Code Online (Sandbox Code Playgroud)

打印:

...
58a2e46: Added readme for github. -- DylanFM
...
Run Code Online (Sandbox Code Playgroud)