git blame使用-L <n,m>选项</n,m>抛出错误的修订错误

时间:2014-12-09 17:03:09

标签: git powershell posh-git

其中一个git blame选项处理行范围。手册说:

  

-L仅处理行范围n,m,从1

开始计算

现在,我有一个超过100行的文件。当我运行git blame -L 5,15 myFile.txt时,git抱怨:

  

致命:糟糕的修订&#39; 15&#39;

有趣的是,当我运行git blame -L 5 myFile.txt时,git不会抱怨。

发生了什么?

3 个答案:

答案 0 :(得分:4)

如果引用它将起作用的行

git blame -L '10,200' composer.json

答案 1 :(得分:2)

在这种情况下,您的命令看起来是正确的。

我已经用composer.json文件检查了这个问题,而且效果很好。当我尝试访问比文件内部更多的行时,我收到错误“文件composer.json只有87行”。

只有在第二个值之前有空格时才会出现此错误。

git blame -L 10, 200 composer.json 

fatal: bad revision '200'

所以我认为这就是问题所在。

请注意,PowerShell和/或Posh-Git可能会在逗号后面注入一个空格。尝试使用命令提示符。

答案 2 :(得分:0)

注意:在git 2.19(2018年第三季度)中,对-L[<N>][,[<M>]]参数“ git blame”和“ git log”的分析进行了调整。

这应该避免使用fatal: bad revision '15'的某些情况,尤其是当文件少于15行时:

请参见commit 7f81c00commit 96cfa94Isabella Stephens (``)(2018年6月15日)。
(由Junio C Hamano -- gitster --commit 6566a91中合并,2018年8月2日)

  

blame:如果范围结束于文件末尾,则防止错误

     

如果使用-L选项在git blame中指定行范围,则   范围的末尾超出了文件的末尾,git将失败并显示致命错误   错误。   此提交阻止了此类行为-相反,我们应对此负责   对于指定范围内的现有行

     

此提交还修复了两个极端情况。

     
      
  • 现在,责骂-L n,-(n+1)指责文件的前n行,而不是指责从n到文件末尾。
  •   
  • 责骂-L ,-n将被视为-L 1,-n,并责怪   文件,而不是责备整个文件
  •