Merge git://git.bogomips.org/git-svn
[git/git.git] / contrib / difftool / git-difftool.txt
CommitLineData
5c38ea31
DA
1git-difftool(1)
2===============
3
4NAME
5----
6git-difftool - compare changes using common merge tools
7
8SYNOPSIS
9--------
10'git difftool' [--tool=<tool>] [--no-prompt] ['git diff' options]
11
12DESCRIPTION
13-----------
14'git difftool' is a git command that allows you to compare and edit files
15between revisions using common merge tools. At its most basic level,
16'git difftool' does what 'git mergetool' does but its use is for non-merge
17situations such as when preparing commits or comparing changes against
18the index.
19
20'git difftool' is a frontend to 'git diff' and accepts the same
21arguments and options.
22
23See linkgit:git-diff[7] for the full list of supported options.
24
25OPTIONS
26-------
27-t <tool>::
28--tool=<tool>::
29 Use the merge resolution program specified by <tool>.
30 Valid merge tools are:
31 kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, and opendiff
32+
33If a merge resolution program is not specified, 'git difftool'
34will use the configuration variable `merge.tool`. If the
35configuration variable `merge.tool` is not set, 'git difftool'
36will pick a suitable default.
37+
38You can explicitly provide a full path to the tool by setting the
39configuration variable `mergetool.<tool>.path`. For example, you
40can configure the absolute path to kdiff3 by setting
41`mergetool.kdiff3.path`. Otherwise, 'git difftool' assumes the
42tool is available in PATH.
43+
44Instead of running one of the known merge tool programs,
45'git difftool' can be customized to run an alternative program
46by specifying the command line to invoke in a configuration
47variable `mergetool.<tool>.cmd`.
48+
49When 'git difftool' is invoked with this tool (either through the
50`-t` or `--tool` option or the `merge.tool` configuration variable)
51the configured command line will be invoked with the following
52variables available: `$LOCAL` is set to the name of the temporary
53file containing the contents of the diff pre-image and `$REMOTE`
54is set to the name of the temporary file containing the contents
55of the diff post-image. `$BASE` is provided for compatibility
56with custom merge tool commands and has the same value as `$LOCAL`.
57
58--no-prompt::
59 Do not prompt before launching a merge tool.
60
61CONFIG VARIABLES
62----------------
63merge.tool::
64 The default merge tool to use.
65+
66See the `--tool=<tool>` option above for more details.
67
68merge.keepBackup::
69 The original, unedited file content can be saved to a file with
70 a `.orig` extension. Defaults to `true` (i.e. keep the backup files).
71
72mergetool.<tool>.path::
73 Override the path for the given tool. This is useful in case
74 your tool is not in the PATH.
75
76mergetool.<tool>.cmd::
77 Specify the command to invoke the specified merge tool.
78+
79See the `--tool=<tool>` option above for more details.
80
81
82SEE ALSO
83--------
84linkgit:git-diff[7]::
85 Show changes between commits, commit and working tree, etc
86
87linkgit:git-mergetool[1]::
88 Run merge conflict resolution tools to resolve merge conflicts
89
90linkgit:git-config[7]::
91 Get and set repository or global options
92
93
94AUTHOR
95------
96Written by David Aguilar <davvid@gmail.com>.
97
98Documentation
99--------------
100Documentation by David Aguilar and the git-list <git@vger.kernel.org>.
101
102GIT
103---
104Part of the linkgit:git[1] suite