Name

merge

Synopsis

                  merge [options] file1 
                  file2 file3
               

Perform a three-way file merge. The effect is easiest to understand if file2 is considered the original version of a file, file3 an altered version of file2, and file1 a later altered version of file2.

After the merge, file1 contains both the changes from file2 to file1 and the changes from file2 to file3. In other words, file1 keeps its changes and incorporates the changes in file3 as well. merge does not change file2 or file3.

If a line from file2 was changed in different ways in both file1 and file3, merge recognizes a conflict. By default, the command outputs a warning and puts brackets around the conflict, with lines preceded by <<<<<<< and >>>>>>>. A typical conflict looks like this:

<<<<<<< file1
relevant lines from file1
=  ==  ==  ==
relevant lines from file3
>>>>>>> file3

If there are conflicts, the user should edit the result and delete one of the alternatives.

Options

-e

Don’t warn about conflicts.

-p

Send results to standard output instead of overwriting file1.

-q

Quiet; do not warn about conflicts.

-A

Output conflicts using the -A style of diff3. This merges all changes leading from file2 to file3 into file1 and generates the most verbose output.

-E

Output conflict information in a less verbose style than -A; this is the default.

-L label

Specify up to three labels to be used in place of the corresponding filenames in conflict reports. That is:

merge -L x -L y -L z 
                           file_a 
                           file_b 
                           file_c

generates output that looks as if it ...

Get Linux in a Nutshell, Fourth 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.