diff options
Diffstat (limited to 'Documentation/git-merge-index.txt')
-rw-r--r-- | Documentation/git-merge-index.txt | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/Documentation/git-merge-index.txt b/Documentation/git-merge-index.txt new file mode 100644 index 000000000000..02676fb39197 --- /dev/null +++ b/Documentation/git-merge-index.txt @@ -0,0 +1,79 @@ +git-merge-index(1) +================== + +NAME +---- +git-merge-index - Run a merge for files needing merging + + +SYNOPSIS +-------- +[verse] +'git merge-index' [-o] [-q] <merge-program> (-a | [--] <file>*) + +DESCRIPTION +----------- +This looks up the <file>(s) in the index and, if there are any merge +entries, passes the SHA-1 hash for those files as arguments 1, 2, 3 (empty +argument if no file), and <file> as argument 4. File modes for the three +files are passed as arguments 5, 6 and 7. + +OPTIONS +------- +\--:: + Do not interpret any more arguments as options. + +-a:: + Run merge against all files in the index that need merging. + +-o:: + Instead of stopping at the first failed merge, do all of them + in one shot - continue with merging even when previous merges + returned errors, and only return the error code after all the + merges. + +-q:: + Do not complain about a failed merge program (a merge program + failure usually indicates conflicts during the merge). This is for + porcelains which might want to emit custom messages. + +If 'git merge-index' is called with multiple <file>s (or -a) then it +processes them in turn only stopping if merge returns a non-zero exit +code. + +Typically this is run with a script calling Git's imitation of +the 'merge' command from the RCS package. + +A sample script called 'git merge-one-file' is included in the +distribution. + +ALERT ALERT ALERT! The Git "merge object order" is different from the +RCS 'merge' program merge object order. In the above ordering, the +original is first. But the argument order to the 3-way merge program +'merge' is to have the original in the middle. Don't ask me why. + +Examples: + + torvalds@ppc970:~/merge-test> git merge-index cat MM + This is MM from the original tree. # original + This is modified MM in the branch A. # merge1 + This is modified MM in the branch B. # merge2 + This is modified MM in the branch B. # current contents + +or + + torvalds@ppc970:~/merge-test> git merge-index cat AA MM + cat: : No such file or directory + This is added AA in the branch A. + This is added AA in the branch B. + This is added AA in the branch B. + fatal: merge program failed + +where the latter example shows how 'git merge-index' will stop trying to +merge once anything has returned an error (i.e., `cat` returned an error +for the AA file, because it didn't exist in the original, and thus +'git merge-index' didn't even try to merge the MM thing). + +GIT +--- +Part of the linkgit:git[1] suite |