git 命令有一个有用的命令可以在重命名后跟踪文件,如下所示git log --follow path/to/some/file
。不幸的是,它仅适用于单个文件。我希望能够做相当于git log --follow some/directory
.
做到这一点的一种方法可能是按摩输出git ls-tree
并在循环中执行此操作,但问题是影响多个文件的提交不会“合并”为一个提交。
有更好的方法吗?注意:使用git 2.7.4
No.
Git 不存储目录,只存储文件。当您使用任何路径名来执行命令时,例如git log
or git diff
查看整个提交,Git 本质上是说“从整个提交开始,然后将其缩小到与该路径匹配的文件”。这里的目录最终会选择每个文件in目录。
The --follow
选项只能跟随一个文件。因此,如果您能以某种方式设法将其应用于目录,Git 首先会将目录转换为一组文件,然后选择其中一个文件并仅跟踪该文件。
(实际上--follow
代码非常hacky。它利用重命名检测代码,但仅在按较新到较旧的顺序比较提交时才有效:如果您添加--reverse
, --follow
根本不起作用。也许整个事情都需要被扔掉并重新编码。也许通过重新编码,您可以让它处理多个文件名,甚至充满文件的目录。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)