'diff' を使用して、行間の差異と文字間の差異の両方を取得したいと思います。たとえば、次のようになります。
ファイル 1
abcde
abc
abcccd
ファイル2
abcde
ab
abccc
使用差分 -u次のような結果になります:
@@ -1,3 +1,3 @@
abcde
-abc
-abcccd
\ No newline at end of file
+ab
+abccc
\ No newline at end of file
ただし、これらの行に変更があったことだけが表示されます。私が見たいのは次のようなものです。
@@ -1,3 +1,3 @@
abcde
-ab<ins>c</ins>
-abccc<ins>d</ins>
\ No newline at end of file
+ab
+abccc
\ No newline at end of file
私の言いたいことはお分かりでしょう。
今、私は使えることを知っていますその他のエンジン特定の行の差異をマーク/チェックします。しかし、私はすべてを実行する 1 つのツールを使用することを好みます。
ベストアンサー1
Gitには単語の差分があり、すべての文字を単語として定義すると、文字の差分が得られます。ただし、改行の変更は無視された。
例
次のようなリポジトリを作成します。
mkdir chardifftest
cd chardifftest
git init
echo -e 'foobarbaz\ncatdog\nfox' > file
git add -A; git commit -m 1
echo -e 'fuobArbas\ncat\ndogfox' > file
git add -A; git commit -m 2
さあ、実行してみgit diff --word-diff=color --word-diff-regex=. master^ master
ましょう。次のようになります:
文字レベルでは追加と削除の両方が認識されるのに対し、改行の追加と削除は無視されることに注意してください。
次のいずれかを試してみるのもよいでしょう:
git diff --word-diff=plain --word-diff-regex=. master^ master
git diff --word-diff=porcelain --word-diff-regex=. master^ master