]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-merge-index.txt
docs: fix filter-branch subdir example for exotic repo names
[thirdparty/git.git] / Documentation / git-merge-index.txt
CommitLineData
215a7ad1 1git-merge-index(1)
2cf565c5 2==================
2cf565c5
DG
3
4NAME
5----
c3f0baac 6git-merge-index - Run a merge for files needing merging
2cf565c5
DG
7
8
9SYNOPSIS
10--------
12378c0a 11'git merge-index' [-o] [-q] <merge-program> (-a | [--] <file>*)
2cf565c5
DG
12
13DESCRIPTION
14-----------
5f3aa197 15This looks up the <file>(s) in the index and, if there are any merge
2cf565c5
DG
16entries, passes the SHA1 hash for those files as arguments 1, 2, 3 (empty
17argument if no file), and <file> as argument 4. File modes for the three
18files are passed as arguments 5, 6 and 7.
19
20OPTIONS
21-------
e994004f 22\--::
16cc50d1 23 Do not interpret any more arguments as options.
2cf565c5
DG
24
25-a::
5f3aa197 26 Run merge against all files in the index that need merging.
2cf565c5 27
7ffeb8c2
PB
28-o::
29 Instead of stopping at the first failed merge, do all of them
30 in one shot - continue with merging even when previous merges
31 returned errors, and only return the error code after all the
29b802aa 32 merges.
7ffeb8c2 33
bbd14cb0 34-q::
29b802aa
RW
35 Do not complain about a failed merge program (a merge program
36 failure usually indicates conflicts during the merge). This is for
bbd14cb0
PB
37 porcelains which might want to emit custom messages.
38
0b444cdb 39If 'git merge-index' is called with multiple <file>s (or -a) then it
2cf565c5
DG
40processes them in turn only stopping if merge returns a non-zero exit
41code.
42
06ada152 43Typically this is run with a script calling git's imitation of
0979c106 44the 'merge' command from the RCS package.
2cf565c5 45
0b444cdb 46A sample script called 'git merge-one-file' is included in the
bbd14cb0 47distribution.
2cf565c5
DG
48
49ALERT ALERT ALERT! The git "merge object order" is different from the
2fd02c92 50RCS 'merge' program merge object order. In the above ordering, the
2cf565c5 51original is first. But the argument order to the 3-way merge program
2fd02c92 52'merge' is to have the original in the middle. Don't ask me why.
2cf565c5
DG
53
54Examples:
55
b1889c36 56 torvalds@ppc970:~/merge-test> git merge-index cat MM
2cf565c5
DG
57 This is MM from the original tree. # original
58 This is modified MM in the branch A. # merge1
59 This is modified MM in the branch B. # merge2
60 This is modified MM in the branch B. # current contents
61
a6080a0a 62or
2cf565c5 63
b1889c36 64 torvalds@ppc970:~/merge-test> git merge-index cat AA MM
2cf565c5
DG
65 cat: : No such file or directory
66 This is added AA in the branch A.
67 This is added AA in the branch B.
68 This is added AA in the branch B.
69 fatal: merge program failed
70
0b444cdb 71where the latter example shows how 'git merge-index' will stop trying to
483bc4f0 72merge once anything has returned an error (i.e., `cat` returned an error
2cf565c5 73for the AA file, because it didn't exist in the original, and thus
0b444cdb 74'git merge-index' didn't even try to merge the MM thing).
2cf565c5
DG
75
76Author
77------
78Written by Linus Torvalds <torvalds@osdl.org>
7ffeb8c2 79One-shot merge by Petr Baudis <pasky@ucw.cz>
2cf565c5
DG
80
81Documentation
82--------------
83Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
84
85GIT
86---
9e1f0a85 87Part of the linkgit:git[1] suite