blob: 84d67b5189e98dec3d17090de89096913f482f64 [file] [log] [blame]
'\" t
.\" Title: git-mergetool
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/18/2018
.\" Manual: Git Manual
.\" Source: Git 2.20.0.rc0
.\" Language: English
.\"
.TH "GIT\-MERGETOOL" "1" "11/18/2018" "Git 2\&.20\&.0\&.rc0" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-mergetool \- Run merge conflict resolution tools to resolve merge conflicts
.SH "SYNOPSIS"
.sp
.nf
\fIgit mergetool\fR [\-\-tool=<tool>] [\-y | \-\-[no\-]prompt] [<file>\&...]
.fi
.sp
.SH "DESCRIPTION"
.sp
Use \fBgit mergetool\fR to run one of several merge utilities to resolve merge conflicts\&. It is typically run after \fIgit merge\fR\&.
.sp
If one or more <file> parameters are given, the merge tool program will be run to resolve differences on each file (skipping those without conflicts)\&. Specifying a directory will include all unresolved files in that path\&. If no <file> names are specified, \fIgit mergetool\fR will run the merge tool program on every file with merge conflicts\&.
.SH "OPTIONS"
.PP
\-t <tool>, \-\-tool=<tool>
.RS 4
Use the merge resolution program specified by <tool>\&. Valid values include emerge, gvimdiff, kdiff3, meld, vimdiff, and tortoisemerge\&. Run
\fBgit mergetool \-\-tool\-help\fR
for the list of valid <tool> settings\&.
.sp
If a merge resolution program is not specified,
\fIgit mergetool\fR
will use the configuration variable
\fBmerge\&.tool\fR\&. If the configuration variable
\fBmerge\&.tool\fR
is not set,
\fIgit mergetool\fR
will pick a suitable default\&.
.sp
You can explicitly provide a full path to the tool by setting the configuration variable
\fBmergetool\&.<tool>\&.path\fR\&. For example, you can configure the absolute path to kdiff3 by setting
\fBmergetool\&.kdiff3\&.path\fR\&. Otherwise,
\fIgit mergetool\fR
assumes the tool is available in PATH\&.
.sp
Instead of running one of the known merge tool programs,
\fIgit mergetool\fR
can be customized to run an alternative program by specifying the command line to invoke in a configuration variable
\fBmergetool\&.<tool>\&.cmd\fR\&.
.sp
When
\fIgit mergetool\fR
is invoked with this tool (either through the
\fB\-t\fR
or
\fB\-\-tool\fR
option or the
\fBmerge\&.tool\fR
configuration variable) the configured command line will be invoked with
\fB$BASE\fR
set to the name of a temporary file containing the common base for the merge, if available;
\fB$LOCAL\fR
set to the name of a temporary file containing the contents of the file on the current branch;
\fB$REMOTE\fR
set to the name of a temporary file containing the contents of the file to be merged, and
\fB$MERGED\fR
set to the name of the file to which the merge tool should write the result of the merge resolution\&.
.sp
If the custom merge tool correctly indicates the success of a merge resolution with its exit code, then the configuration variable
\fBmergetool\&.<tool>\&.trustExitCode\fR
can be set to
\fBtrue\fR\&. Otherwise,
\fIgit mergetool\fR
will prompt the user to indicate the success of the resolution after the custom tool has exited\&.
.RE
.PP
\-\-tool\-help
.RS 4
Print a list of merge tools that may be used with
\fB\-\-tool\fR\&.
.RE
.PP
\-y, \-\-no\-prompt
.RS 4
Don\(cqt prompt before each invocation of the merge resolution program\&. This is the default if the merge resolution program is explicitly specified with the
\fB\-\-tool\fR
option or with the
\fBmerge\&.tool\fR
configuration variable\&.
.RE
.PP
\-\-prompt
.RS 4
Prompt before each invocation of the merge resolution program to give the user a chance to skip the path\&.
.RE
.PP
\-g, \-\-gui
.RS 4
When
\fIgit\-mergetool\fR
is invoked with the
\fB\-g\fR
or
\fB\-\-gui\fR
option the default merge tool will be read from the configured
\fBmerge\&.guitool\fR
variable instead of
\fBmerge\&.tool\fR\&.
.RE
.PP
\-\-no\-gui
.RS 4
This overrides a previous
\fB\-g\fR
or
\fB\-\-gui\fR
setting and reads the default merge tool will be read from the configured
\fBmerge\&.tool\fR
variable\&.
.RE
.PP
\-O<orderfile>
.RS 4
Process files in the order specified in the <orderfile>, which has one shell glob pattern per line\&. This overrides the
\fBdiff\&.orderFile\fR
configuration variable (see
\fBgit-config\fR(1))\&. To cancel
\fBdiff\&.orderFile\fR, use
\fB\-O/dev/null\fR\&.
.RE
.SH "TEMPORARY FILES"
.sp
\fBgit mergetool\fR creates \fB*\&.orig\fR backup files while resolving merges\&. These are safe to remove once a file has been merged and its \fBgit mergetool\fR session has completed\&.
.sp
Setting the \fBmergetool\&.keepBackup\fR configuration variable to \fBfalse\fR causes \fBgit mergetool\fR to automatically remove the backup as files are successfully merged\&.
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite