1. ホーム
  2. git

[解決済み] 行番号付きGit diff (行番号付きGitログ)

2022-09-27 11:16:20

質問

を実行すると git diff または git log -p のように、ソースファイルの行番号を出力にインラインで表示するにはどうしたらよいでしょうか?

私はそれを調べることを試みた man git-diff | grep "line numbers" とググってみましたが、すぐに何も出てきません。

どのように解決するには?

で人間が読める行番号を取得することはできません。 git diff

で縦に表示される行番号を取得するオプションは今のところありません。 git diff .

Unified-diff形式

その情報は、diff 内の各変更の (c)hunk ヘッダで利用可能ですが、それは単に ユニファイドディフフォーマット :

@@ -start,count +start,count @@

ファイルの元の状態を - で、新しい状態は + (で表されます(hunkヘッダでの追加や削除を意味するものではありません。 start は各バージョンのファイルの開始行番号を表し count は開始点から数えて何行目に含まれるかを表します。

diff --git a/osx/.gitconfig b/osx/.gitconfig
index 4fd8f04..fcd220c 100644
--- a/osx/.gitconfig
+++ b/osx/.gitconfig
@@ -11,7 +11,7 @@ <== HERE!
 [color "branch"]
        upstream = cyan
 [color "diff"]
-       meta = yellow
+       meta = cyan
        plain = white dim
        old = red bold
        new = green bold

ハンクヘッダー

@@ -11,7 +11,7 @@

は、前のバージョンのファイルが11行目から始まり、7行を含んでいると言っています。

11  [color "branch"]
12         upstream = cyan
13  [color "diff"]
14 -       meta = yellow
14 +       meta = cyan
15         plain = white dim
16         old = red bold
17         new = green bold

であるのに対し、次のバージョンのファイルも11行目から始まり、同じく7行を含んでいます。

Unified-diff形式は人間が使うものではない

おそらくお分かりのように、unified-diff 形式は行番号を把握するのが簡単ではありません (少なくともあなたが機械でない場合は)。本当に読み取れる行番号が必要な場合は、行番号を表示する diff ツールを使用する必要があります。

追加の読み込み