Autogenerated manpages for v2.39.1-231-ga7caae
[git-manpages.git] / man1 / git-merge-file.1
blob8845a36df76d7cf3f6a5aa0fcaed13d8717fecd8
1 '\" t
2 .\"     Title: git-merge-file
3 .\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
4 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
5 .\"      Date: 01/17/2023
6 .\"    Manual: Git Manual
7 .\"    Source: Git 2.39.1.231.ga7caae2729
8 .\"  Language: English
9 .\"
10 .TH "GIT\-MERGE\-FILE" "1" "01/17/2023" "Git 2\&.39\&.1\&.231\&.ga7caae" "Git Manual"
11 .\" -----------------------------------------------------------------
12 .\" * Define some portability stuff
13 .\" -----------------------------------------------------------------
14 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15 .\" http://bugs.debian.org/507673
16 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
17 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18 .ie \n(.g .ds Aq \(aq
19 .el       .ds Aq '
20 .\" -----------------------------------------------------------------
21 .\" * set default formatting
22 .\" -----------------------------------------------------------------
23 .\" disable hyphenation
24 .nh
25 .\" disable justification (adjust text to left margin only)
26 .ad l
27 .\" -----------------------------------------------------------------
28 .\" * MAIN CONTENT STARTS HERE *
29 .\" -----------------------------------------------------------------
30 .SH "NAME"
31 git-merge-file \- Run a three\-way file merge
32 .SH "SYNOPSIS"
33 .sp
34 .nf
35 \fIgit merge\-file\fR [\-L <current\-name> [\-L <base\-name> [\-L <other\-name>]]]
36         [\-\-ours|\-\-theirs|\-\-union] [\-p|\-\-stdout] [\-q|\-\-quiet] [\-\-marker\-size=<n>]
37         [\-\-[no\-]diff3] <current\-file> <base\-file> <other\-file>
38 .fi
39 .sp
40 .SH "DESCRIPTION"
41 .sp
42 \fIgit merge\-file\fR incorporates all changes that lead from the \fB<base\-file>\fR to \fB<other\-file>\fR into \fB<current\-file>\fR\&. The result ordinarily goes into \fB<current\-file>\fR\&. \fIgit merge\-file\fR is useful for combining separate changes to an original\&. Suppose \fB<base\-file>\fR is the original, and both \fB<current\-file>\fR and \fB<other\-file>\fR are modifications of \fB<base\-file>\fR, then \fIgit merge\-file\fR combines both changes\&.
43 .sp
44 A conflict occurs if both \fB<current\-file>\fR and \fB<other\-file>\fR have changes in a common segment of lines\&. If a conflict is found, \fIgit merge\-file\fR normally outputs a warning and brackets the conflict with lines containing <<<<<<< and >>>>>>> markers\&. A typical conflict will look like this:
45 .sp
46 .if n \{\
47 .RS 4
48 .\}
49 .nf
50 <<<<<<< A
51 lines in file A
52 =======
53 lines in file B
54 >>>>>>> B
55 .fi
56 .if n \{\
57 .RE
58 .\}
59 .sp
60 If there are conflicts, the user should edit the result and delete one of the alternatives\&. When \fB\-\-ours\fR, \fB\-\-theirs\fR, or \fB\-\-union\fR option is in effect, however, these conflicts are resolved favouring lines from \fB<current\-file>\fR, lines from \fB<other\-file>\fR, or lines from both respectively\&. The length of the conflict markers can be given with the \fB\-\-marker\-size\fR option\&.
61 .sp
62 The exit value of this program is negative on error, and the number of conflicts otherwise (truncated to 127 if there are more than that many conflicts)\&. If the merge was clean, the exit value is 0\&.
63 .sp
64 \fIgit merge\-file\fR is designed to be a minimal clone of RCS \fImerge\fR; that is, it implements all of RCS \fImerge\fR\(aqs functionality which is needed by \fBgit\fR(1)\&.
65 .SH "OPTIONS"
66 .PP
67 \-L <label>
68 .RS 4
69 This option may be given up to three times, and specifies labels to be used in place of the corresponding file names in conflict reports\&. That is,
70 \fBgit merge\-file \-L x \-L y \-L z a b c\fR
71 generates output that looks like it came from files x, y and z instead of from files a, b and c\&.
72 .RE
73 .PP
74 \-p
75 .RS 4
76 Send results to standard output instead of overwriting
77 \fB<current\-file>\fR\&.
78 .RE
79 .PP
80 \-q
81 .RS 4
82 Quiet; do not warn about conflicts\&.
83 .RE
84 .PP
85 \-\-diff3
86 .RS 4
87 Show conflicts in "diff3" style\&.
88 .RE
89 .PP
90 \-\-zdiff3
91 .RS 4
92 Show conflicts in "zdiff3" style\&.
93 .RE
94 .PP
95 \-\-ours, \-\-theirs, \-\-union
96 .RS 4
97 Instead of leaving conflicts in the file, resolve conflicts favouring our (or their or both) side of the lines\&.
98 .RE
99 .SH "EXAMPLES"
101 \fBgit merge\-file README\&.my README README\&.upstream\fR
102 .RS 4
103 combines the changes of README\&.my and README\&.upstream since README, tries to merge them and writes the result into README\&.my\&.
106 \fBgit merge\-file \-L a \-L b \-L c tmp/a123 tmp/b234 tmp/c345\fR
107 .RS 4
108 merges tmp/a123 and tmp/c345 with the base tmp/b234, but uses labels
109 \fBa\fR
111 \fBc\fR
112 instead of
113 \fBtmp/a123\fR
115 \fBtmp/c345\fR\&.
117 .SH "GIT"
119 Part of the \fBgit\fR(1) suite