Git责备一个尚未提交的重命名文件

时间:2014-04-23 16:49:12

标签: git

我有一个使用git mv oldfilename newfilename

重命名的文件

在我提交此更改之前,如何对此文件进行git责备?重命名没有被提取,因为它还没有被提交。

> git blame newfilename
> fatal: no such path 'newfilename' in HEAD

旧文件名不再存在。

> git blame oldfilename
> fatal: cannot stat path 'oldfilename': No such file or directory

1 个答案:

答案 0 :(得分:4)

鉴于你告诉git关于文件移动,你认为它可以解决它。但它没有。

--contents开关将完成您想要的任务。来自git-blame手册页......

--contents <file>
   When <rev> is not specified, the command annotates the changes starting
   backwards from the working tree copy. This flag makes the command pretend as if
   the working tree copy has the contents of the named file (specify - to make the
   command read from the standard input).

git blame --contents newfilename -- oldfilename将对HEAD上出现的oldfilename进行责备记录,但使用newfilename的内容作为最新版本。

对于对文件进行指责的一般问题,无论出于何种原因,该文件不再存在,请传递git blame的特定修订版。 git blame <rev> -- <file>。所以git blame HEAD -- oldfilename将在上一次提交时给出oldfilename的责备日志。

--通常用于告诉命令停止处理选项并将后面的内容视为正常参数。但是,git blame似乎正在超载正常含义意味着“不要寻找文件&#34; ...”我认为。从文档中不完全清楚。

有关详细信息,请参阅"SPECIFYING RANGES" in the "git-blame" man page