当使用命令
git log --name-status -- <filename>
时,如何显示在提交中被重命名的文件的新名称?如果命令行中没有指定特定的文件名,则 --name-status
只会显示完整的重命名操作。以下是来自我的一个存储库的示例。提供了文件名后,我只能看到删除操作,但无法看到新的文件名:❯ git log --name-status --oneline -- setup.py
f4b8f93 Use uwsgi.ini and remove legacy runserver stuff
A setup.py
5bb21a8 Rename setup.py to setup_pymake.py
D setup.py
在没有文件名的情况下使用--name-status
,可以得到完整的细节:
❯ git log --name-status --oneline 5bb21a8
5bb21a8 Rename setup.py to setup_pymake.py
R100 setup.py setup_pymake.py
当追踪单个文件时,我希望也能得到这种信息。
编辑:只有在提交顺序如下(从旧到新)的情况下,才会出现此特定情况:
- 创建
setup.py
- 将
setup.py
重命名为setup_pymake.py
- 创建另一个
setup.py
如果没有最后一个步骤,则不会出现此奇怪的行为。我不确定Git从提交3回溯到2是否合理。
编辑2:--follow
在这里无法改变任何内容,因为原始问题似乎是有一个“不想要”的跟踪。
--follow
进行操作,但请注意--follow
的实现是一种不太正规的技巧,只适用于特定情况。(我相信这应该属于那些特殊情况之一。) - toreksetup.py
。这是有问题的。:-) 不过由于 Git 是逐步提交的,你可以预测 Git 在这里的行为。 - torek