其中一个git blame
选项处理行范围。手册说:
-L仅处理行范围n,m,从1
开始计算
现在,我有一个超过100行的文件。当我运行git blame -L 5,15 myFile.txt
时,git抱怨:
致命:糟糕的修订' 15'
有趣的是,当我运行git blame -L 5 myFile.txt
时,git不会抱怨。
发生了什么?
答案 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 7f81c00的commit 96cfa94,Isabella 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
,并责怪 文件,而不是责备整个文件。