'\" t .\" Title: git-merge-index .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.75.2 .\" Date: 04/04/2016 .\" Manual: Git Manual .\" Source: Git 2.8.0 .\" Language: English .\" .TH "GIT\-MERGE\-INDEX" "1" "04/04/2016" "Git 2\&.8\&.0" "Git Manual" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" git-merge-index \- Run a merge for files needing merging .SH "SYNOPSIS" .sp .nf \fIgit merge\-index\fR [\-o] [\-q] (\-a | [\-\-] *) .fi .sp .SH "DESCRIPTION" .sp This looks up the (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 as argument 4\&. File modes for the three files are passed as arguments 5, 6 and 7\&. .SH "OPTIONS" .PP \-\- .RS 4 Do not interpret any more arguments as options\&. .RE .PP \-a .RS 4 Run merge against all files in the index that need merging\&. .RE .PP \-o .RS 4 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\&. .RE .PP \-q .RS 4 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\&. .RE .sp If \fIgit merge\-index\fR is called with multiple s (or \-a) then it processes them in turn only stopping if merge returns a non\-zero exit code\&. .sp Typically this is run with a script calling Git\(cqs imitation of the \fImerge\fR command from the RCS package\&. .sp A sample script called \fIgit merge\-one\-file\fR is included in the distribution\&. .sp ALERT ALERT ALERT! The Git "merge object order" is different from the RCS \fImerge\fR program merge object order\&. In the above ordering, the original is first\&. But the argument order to the 3\-way merge program \fImerge\fR is to have the original in the middle\&. Don\(cqt ask me why\&. .sp Examples: .sp .if n \{\ .RS 4 .\} .nf 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 .fi .if n \{\ .RE .\} .sp or .sp .if n \{\ .RS 4 .\} .nf 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 .fi .if n \{\ .RE .\} .sp where the latter example shows how \fIgit merge\-index\fR will stop trying to merge once anything has returned an error (i\&.e\&., cat returned an error for the AA file, because it didn\(cqt exist in the original, and thus \fIgit merge\-index\fR didn\(cqt even try to merge the MM thing)\&. .SH "GIT" .sp Part of the \fBgit\fR(1) suite