Chapter 7. Diffs
Before we cover the prowess of Gitâs diff
command, it will be beneficial to quickly cover the concept of the Unix and Linux diff
utilities since the command git diff
can compare files much akin to its Unix and Linux counterparts. A diff is a compact summary of the differences (hence the name âdiffâ) between two items. For example, given two files, the Unix and Linux diff
commands compare the files line by line and summarize the deviations in a diff, as shown in the following example snippet. More specifically, the deviations list the required changes to convert one file into the other. In the example, initial
is one version of some prose and rewrite
is a subsequent revision. The -u
option produces a unified diff, a standardized format used widely to share modifications:
$cat initial
Now is the time For all good men To come to the aid Of their country. $cat rewrite
Today is the time For all good men And women To come to the aid Of their country. $diff -u initial rewrite
--- initial 1867-01-02 11:22:33.000000000 -0500 +++ rewrite 2000-01-02 11:23:45.000000000 -0500 @@ -1,4 +1,5 @@ -Now is the time +Today is the time For all good men +And women To come to the aid Of their country.
Letâs look at the diff in detail. In the header, the original file is denoted by -â-â-
and the new file by + + +
. The @@
line provides line number context for both file versions. A line prefixed with a minus sign (â
) must be removed from the original file to produce the ...
Get Version Control with Git, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.