との行awk
だけを表示するために使用する方法、色またはテキストの書式設定を考慮して出力される場合があります。+
-
git diff
ここにある他の回答(私の他の回答を含む)のどれも、あなたが望むものを100%正確に正確に実行するわけではありません。ただし、この答えは可能です。これは、コピーしてターミナルに貼り付けることができる1ライナーです。読みやすくするために複数行にしました。どちらでも同じようにコピーして貼り付けることができるので、読みやすくすることもできます。それはawk
プログラミング言語に依存しています:
git diff --color=always "$@" | awk '
# 1. Match and then skip "--- a/" and "+++ b/" lines
/^(\033\[(([0-9]{1,2};?){1,10})m)?(--- a\/|\+\+\+ b\/)/ {
next
}
# 2. Now print the remaining "+" and "-" lines ONLY! Note: doing step 1 above first was required or
# else those lines would have been matched by this matcher below too since they also begin with
# the "+" and "-" symbols.
/^(\033\[(([0-9]{1,2};?){1,10})m)?[-+]/ {
print $0
}
' | less -RFX
ここにその特徴があります。これらの機能をすべて組み合わせると、ここで他のすべての回答の欠点を解決できます。
- カラーとカラーなしの出力を処理します。これが、この正規表現が行うことです。
^(\033\[(([0-9]{1,2};?){1,10})m)?
- 太字、斜体、取り消し線など、設定で設定できるすべての色とすべてのテキストの書式設定オプションを処理します
git config
。それが上記の正規表現がある理由であり;?
、{1,10}
それに:それは色やテキストの書式コードの開始を検出した場合、それはこれらの組み合わせANSIコードの10個の配列に一致します。
また、で始まる行は含まれていません@@
し、単語diff
として、受け入れられた答えはありませんが。これらの行が必要な場合(率直に言って、これは便利だと思います:))、代わりに次のようにします。
git diff --unified=0
または
git diff -U0
正確に同じように出力を表示しますgit diff
:less
オプションのカラー出力(-R
)を備えたページャーで、テキストが> 1ページ(-F
)の場合のみ、そしてq
uit(-X
)時に画面上のテキストの現在のページを保持します。
また、awkプログラミング言語を使用しているため、強力で簡単に構成できるという利点もあります。
awkの学習に興味がある場合は、次のリソースをご覧ください。
gawk
(GNU awk
)マニュアル:https : //www.gnu.org/software/gawk/manual/html_node/index.html#SEC_Contents
- 調査
git diffn
とそのコメント:https : //github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/blob/master/useful_scripts/git-diffn.sh
- 行番号
git diffn
とgit diff
一緒にしたい場合は、ここを参照してください:行番号付きのGit diff(行番号付きのGitログ)
- awkの「hello world」と構文テストの例:https : //github.com/ElectricRCAircraftGuy/eRCaGuy_hello_world/tree/master/awk
おまけとして、上記をまとめてとして使用しましたgit diffc
。これは、「git diffで「c'hangesのみを表示」することを意味します。使い方は同じにgit diff
。git diffc
代わりに使用してください!すべてのオプションをサポートしています。カラーはデフォルトでオンです。オフにするには、git diffc --no-color
またはを使用しますgit diffc --color=never
。見るman git diff
については、をしてください。
私は昨夜(line 'n'umbersでgit diffn
表示するツール)を終えたばかりなのでgit diff
、書くのgit diffc
は簡単でした。知識が頭の中で新鮮なうちに、今やった方がいいと思った。
インストールgit diffc
:
この回答の最後にある手順に従ってください。手順に記載されている箇所を除きgit-diffn
、git-diffc
代わりに使用してください。wget
コマンドにも含まれています。ダウンロードとインストールgit diffc
は簡単です:それはほんのいくつかのコマンドです。