との行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)の場合のみ、そしてquit(-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は簡単です:それはほんのいくつかのコマンドです。