man pages section 1: User Commands

Exit Print View

Updated: July 2014

git-merge-index (1)


git-merge-index - Run a merge for files needing merging


git merge-index [-o] [-q] <merge-program> (-a | [--] <file>*)


Git Manual                                     GIT-MERGE-INDEX(1)

     git-merge-index - Run a merge for files needing merging

     git merge-index [-o] [-q] <merge-program> (-a | [--] <file>*)

     This looks up the <file>(s) in the index and, if there are
     any merge entries, passes the SHA1 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.

         Do not interpret any more arguments as options.

         Run merge against all files in the index that need

         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.

         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

     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.


Git          Last change: 02/22/2012                    1

Git Manual                                     GIT-MERGE-INDEX(1)

         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


         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).

     Part of the git(1) suite

     See attributes(5) for descriptions of the following

     |Availability   | developer/versioning/git |
     |Stability      | Uncommitted              |
     This software was built from source available at  The original
     community source was downloaded from  http://git-

     Further information about this software can be found on the
     open source community website at

Git          Last change: 02/22/2012                    2