为了提高稳定性,我目前正在重构所有与Git相关的shell脚本,以便它们只使用 plumbing (而不是瓷器)命令。特别是,我试图通过调用git rev-list
(管道)来替换对git log
(瓷器)的调用。
但是,尽管git rev-list
似乎提供了git log
的大部分功能,但它似乎缺少一个等同于git log
的{{1}}标志的选项, Git列出影响路径甚至超出重命名的提交(例如--follow
- > README
)。来自git log
man page:
README.md
继续列出重命名以外的文件历史记录(仅适用于此工作 对于单个文件)。
我已经筛选了git rev-list
man page,但我找不到任何与--follow
相同的选项。我错过了什么?可以用git log --follow
完成吗?或者我应该完全使用另一个管道命令?
答案 0 :(得分:1)
不幸的是,--follow
实际上(很差)构建到git log
本身。它在一个特殊的单文件模式下打开重命名检测机制,然后可以找到向后转换(新文件foo =旧文件栏)。
(它没有找到前向转换,所以如果你使用--reverse
并命名一个曾经存在的路径,例如,为了找到它变成了什么文件,它就会失败。)