5

git blameオプションの1つは行範囲を処理します。マニュアルには次のように書かれています。

-L 1 から数えて、行範囲 n,m のみを処理します

現在、100 行を超えるファイルがあります。を実行するgit blame -L 5,15 myFile.txtと、git が不平を言います:

致命的: 不正なリビジョン '15'

興味深いことに、 を実行しても git は文句を言いませんgit blame -L 5 myFile.txt

どうしたの?

4

3 に答える 3

2

その場合、コマンドは正しく見えます。

composer.json ファイルでその問題を確認しましたが、うまく機能しています。ファイル内よりも多くの行にアクセスしようとすると、「file composer.json has only 87 lines」というエラーが表示されます。

このエラーは、2 番目の値の前にスペースがある場合にのみ発生します。

git blame -L 10, 200 composer.json 

fatal: bad revision '200'

だから私はそれが問題だと思います。

PowerShell や Posh-Git では、コンマの後にスペースが挿入される場合があることに注意してください。コマンドプロンプトを使用してみてください。

于 2014-12-09T17:14:16.167 に答える
0

注: git 2.19 (2018 年第 3 四半期) では、-L[<N>][,[<M>]]パラメーター " git blame" および " git log" テイクの解析が微調整されました。

fatal: bad revision '15'特にファイルの行数が 15 行未満の場合は、特定のケースを回避する必要があります。

commit 7f81c00commit 96cfa94 (2018 年 6 月 15 日) by Isabella Stephens (``)を参照してください。
( 2018 年 8 月 2 日にコミット 6566a91Junio C Hamanoによってマージされました)gitster

blame: 範囲がファイルの末尾を超えて終了する場合のエラーを防ぎます

で行範囲を指定するために-Lオプションが使用されgit blame、範囲の末尾がファイルの末尾を超えている場合、git は致命的なエラーで失敗します。 このコミットにより、そのような動作が防止されます。代わりに、指定された範囲内の既存の行の責任が表示されます

このコミットは、2 つのコーナー ケースも修正します。

  • Blamingは、ファイルの末尾からではなく-L n,-(n+1)、ファイルの最初のn行を非難するようになりました。n
  • 非難は、ファイル全体を非難するのではなく、ファイルの最初の行を非難する-L ,-nものとして扱われます。-L 1,-n
于 2018-08-08T20:33:48.213 に答える