4

为了提高稳定性,我目前正在重构所有与 Git 相关的 shell 脚本,以便它们只使用管道(而不是瓷器)命令。特别是,我试图通过调用(管道)来替换对git log(瓷器)的调用。git rev-list

然而,尽管git rev-list似乎提供了 的大部分功能git log,但它似乎缺少与git log'--follow标志等效的选项,该标志告诉 Git 列出影响路径的提交,甚至超出重命名(例如README-> README.md)。从git log手册页

--follow

继续列出重命名后的文件历史记录(仅适用于单个文件)。

我已经筛选了git rev-list手册页,但找不到任何与git log --follow. 我错过了什么?可以这样做git rev-list吗?还是我应该完全使用另一个管道命令?

4

1 回答 1

1

不幸的是,--follow实际上是(很差地)内置于git log自身中的。它以一种特殊的仅文件模式打开重命名检测机制,然后可以找到向后转换(新文件 foo = 旧文件栏)。

(它找不到前向转换,因此如果您使用--reverse并命名一个曾经存在的路径,例如,为了找到它变成了什么文件,它就会失败。)

于 2015-03-24T18:14:25.427 回答