如何在git的所有提交中找到所有重命名?

时间:2013-12-19 02:20:42

标签: git

我迷失在一个回购迷宫中,有一堆文件在他们的旧版本重新命名时被重新播放,因为它已经制作了一个不太好的rebase。

无论如何,我想列出在某些时候重命名的所有文件,即列出所有提交的所有重命名文件。

1 个答案:

答案 0 :(得分:2)

这样就够了吗?

git whatchanged -M5 --summary | grep rename | grep '=>'

这是一个修改后的版本,它将重命名和删除文件:

git whatchanged -M5 --summary | grep -E 'rename.*=>|delete mode'

这将为您提供当前分支的HEAD的所有重命名,并且它的祖先包括合并的父级直到第一次提交。 -M5将具有相似的文件50%或更多报告为重命名;这可能是低百分比,但你可以改变它(5读为.5,或50%所以你可以将它改为M8 80%)。请注意,如果有很多提交,则需要很长时间。

我建议你限制提交范围,例如:

git whatchanged -M5 --summary <commit-id>..HEAD | grep rename | grep '=>'

据我所知,你需要从提交开始,我不知道你怎么能一次在所有分支和标签上获得一个全面的重命名文件列表。如果您想要检查不同的分支,或者在单个仓库中使用独立的提交历史记录分支,则需要在每个分支上运行建议的命令。