其中一个git blame
选项处理行范围。手册说:
-L 仅处理行范围 n,m,从 1 开始计数
现在,我有一个超过 100 行的文件。当我运行git blame -L 5,15 myFile.txt
时,git 抱怨:
致命:错误修订版"15">
有趣的是,当我运行 git 时git blame -L 5 myFile.txt
不会抱怨。
这是怎么回事?
如果你引用这些行,它将起作用
git blame -L '10,200' composer.json
在这种情况下,您的命令看起来是正确的。
我已经用我的 composer.json 文件检查了这个问题,它运行良好。当我尝试访问比文件内部更多的行时,我收到错误"file composer.json 只有 87 行"。
仅当第二个值之前有一个空格时,才会收到此错误。
git blame -L 10, 200 composer.json
fatal: bad revision '200'
所以我认为这就是问题所在。
请注意,PowerShell 和/或 Posh-Git 可能会在逗号后注入空格。尝试使用命令提示符。
注意:在 git 2.19(2018 年第 3 季度(中,-L[<N>][,[<M>]]
参数"git blame
"和"git log
"的解析已经调整。
这应该避免某些fatal: bad revision '15'
的情况,特别是当文件少于 15 行时:
请参阅提交 7f81c00,提交 96cfa94 (2018 年 6 月 15 日(,作者:Isabella Stephens (''(。
(由Junio C Hamano -- gitster
-- 在提交6566a91中合并,2018年8月2日(
blame
:如果范围结束超过文件末尾,则防止错误如果使用
-L
选项指定git blame
中的线范围,则 范围的末尾超过文件的末尾,git 将失败并致命 错误。 此提交可防止此类行为 - 相反,我们显示责备 对于指定范围内的现有行。此提交还修复了两个极端情况。
- 现在,责备
-L n,-(n+1)
归咎于文件的前n
行,而不是从文件的n
到末尾。- 责备
-L ,-n
将被视为-L 1,-n
,责备第一行 文件,而不是责怪整个文件。