我有一个使用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
答案 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; ...”我认为。从文档中不完全清楚。