You seem to be confusing 3 different things
- The unix command line tool
diff3
provided by GNU diffutils
- The output format of the diff that git provides (in which
diff3
is a non-default option)
- The algorithm that git uses to generate the diff
Git supports 4 different diff algorithms.
You can specify via the command line to git diff
--minimal
Spend extra time to make sure the smallest possible diff is produced.
--patience
Generate a diff using the "patience diff" algorithm.
--histogram
Generate a diff using the "histogram diff" algorithm.
--diff-algorithm={patience|minimal|histogram|myers}
Choose a diff algorithm. The variants are as follows:
default, myers
The basic greedy diff algorithm. Currently, this is the default.
minimal
Spend extra time to make sure the smallest possible diff is produced.
patience
Use "patience diff" algorithm when generating patches.
histogram
This algorithm extends the patience algorithm to "support low-occurrence common elements".
or via git configuration.
diff.algorithm
Choose a diff algorithm. The variants are as follows:
default, myers
The basic greedy diff algorithm. Currently, this is the default.
minimal
Spend extra time to make sure the smallest possible diff is produced.
patience
Use "patience diff" algorithm when generating patches.
histogram
This algorithm extends the patience algorithm to "support low-occurrence common elements".
The diff2
pdf-link in your original question is a description of the myers
algorithm, and seems to be unrelated to the 2-way conflict markers git calls diff2
in merge.conflictStyle
.
Similarly, the unix tool diff3
is unrelated to the 3-way conflict markers git calls diff3
.