我迷失在回购迷宫中,其中有一堆文件被读取,而旧版本由于进行了不太好的变基而被重命名。
无论如何,我想列出在某个时刻被重命名的所有文件,即列出所有提交中的所有重命名文件。
这样就够了吗?
git whatchanged -M5 --summary | grep rename | grep '=>'
这是一个修改版本,它将重命名和删除文件:
git whatchanged -M5 --summary | grep -E 'rename.*=>|delete mode'
这将为您提供从当前分支的 HEAD 及其祖先的所有重命名,包括合并的父级到第一次提交。-M5 会将相似度达到 50% 或更多的文件报告为重命名;这可能是一个较低的百分比,但您可以更改它(5 读作 0.5 或 50%,因此您可以将其更改为 M8 为 80%)。请注意,如果提交很多,则需要很长时间。
我建议您限制提交的范围,例如:
git whatchanged -M5 --summary <commit-id>..HEAD | grep rename | grep '=>'
据我所知,您需要从提交开始,我不确定如何立即获得跨所有分支和标签的重命名文件的完整列表。如果您想要检查不同的分支,或者在单个存储库中具有独立提交历史记录的分支,则需要在每个分支上运行建议的命令。