1

git がコミットでファイル全体を消去し、すべての行をもう一度書き換える理由を理解しようとしています。

その場合、すべての変更を正しく見つけることができません。

例:

元のファイル:

hello world

次に、新しい行を追加します。

(git の正しい動作は次のようになります:)

hello world + This is a new line

しかし、コミットでこれを経験することがあります。

-hello world +hello world +This is a new line

この例では、2 行しかないので、何が起こったのかを簡単に把握できます。ただし、これは大きなファイルで発生します。

この動作の原因は何ですか? また、同じコミットには、正しいファイル (変更された行のみを git が認識するファイル) と正しくないファイルが存在する可能性があります。

4

2 に答える 2

3

Git は、空白行末の変更も追跡しています。したがって、おそらく「見えない」キャラクターの1つが変更されました。

最初にファイルに最後の改行文字がなく、次に改行文字を追加した場合、git がこれを表示することもあります。このような:

-line
\ No newline at end of file
+line
于 2015-11-13T12:06:22.380 に答える
1

git diffこれらの差分を使用または表示する場合は、すべての空白の変更を無視するパラメーターをgit show追加してみてください。-wこのようにして、差分を表示するときに探している効果を得ることができます。

例えば:

git diff -w

git show -w
于 2015-11-13T12:19:54.400 に答える