Autogenerated manpages for v2.35.1-225-ge2ac9
[git-manpages.git] / man1 / git-difftool.1
blob3cb3bf2ef585c95a5a955624574615916a21b9ad
1 '\" t
2 .\"     Title: git-difftool
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: 02/17/2022
6 .\"    Manual: Git Manual
7 .\"    Source: Git 2.35.1.225.ge2ac9141e6
8 .\"  Language: English
9 .\"
10 .TH "GIT\-DIFFTOOL" "1" "02/17/2022" "Git 2\&.35\&.1\&.225\&.ge2ac91" "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-difftool \- Show changes using common diff tools
32 .SH "SYNOPSIS"
33 .sp
34 .nf
35 \fIgit difftool\fR [<options>] [<commit> [<commit>]] [\-\-] [<path>\&...]
36 .fi
37 .sp
38 .SH "DESCRIPTION"
39 .sp
40 \fIgit difftool\fR is a Git command that allows you to compare and edit files between revisions using common diff tools\&. \fIgit difftool\fR is a frontend to \fIgit diff\fR and accepts the same options and arguments\&. See \fBgit-diff\fR(1)\&.
41 .SH "OPTIONS"
42 .PP
43 \-d, \-\-dir\-diff
44 .RS 4
45 Copy the modified files to a temporary location and perform a directory diff on them\&. This mode never prompts before launching the diff tool\&.
46 .RE
47 .PP
48 \-y, \-\-no\-prompt
49 .RS 4
50 Do not prompt before launching a diff tool\&.
51 .RE
52 .PP
53 \-\-prompt
54 .RS 4
55 Prompt before each invocation of the diff tool\&. This is the default behaviour; the option is provided to override any configuration settings\&.
56 .RE
57 .PP
58 \-\-rotate\-to=<file>
59 .RS 4
60 Start showing the diff for the given path, the paths before it will move to end and output\&.
61 .RE
62 .PP
63 \-\-skip\-to=<file>
64 .RS 4
65 Start showing the diff for the given path, skipping all the paths before it\&.
66 .RE
67 .PP
68 \-t <tool>, \-\-tool=<tool>
69 .RS 4
70 Use the diff tool specified by <tool>\&. Valid values include emerge, kompare, meld, and vimdiff\&. Run
71 \fBgit difftool \-\-tool\-help\fR
72 for the list of valid <tool> settings\&.
73 .sp
74 If a diff tool is not specified,
75 \fIgit difftool\fR
76 will use the configuration variable
77 \fBdiff\&.tool\fR\&. If the configuration variable
78 \fBdiff\&.tool\fR
79 is not set,
80 \fIgit difftool\fR
81 will pick a suitable default\&.
82 .sp
83 You can explicitly provide a full path to the tool by setting the configuration variable
84 \fBdifftool\&.<tool>\&.path\fR\&. For example, you can configure the absolute path to kdiff3 by setting
85 \fBdifftool\&.kdiff3\&.path\fR\&. Otherwise,
86 \fIgit difftool\fR
87 assumes the tool is available in PATH\&.
88 .sp
89 Instead of running one of the known diff tools,
90 \fIgit difftool\fR
91 can be customized to run an alternative program by specifying the command line to invoke in a configuration variable
92 \fBdifftool\&.<tool>\&.cmd\fR\&.
93 .sp
94 When
95 \fIgit difftool\fR
96 is invoked with this tool (either through the
97 \fB\-t\fR
99 \fB\-\-tool\fR
100 option or the
101 \fBdiff\&.tool\fR
102 configuration variable) the configured command line will be invoked with the following variables available:
103 \fB$LOCAL\fR
104 is set to the name of the temporary file containing the contents of the diff pre\-image and
105 \fB$REMOTE\fR
106 is set to the name of the temporary file containing the contents of the diff post\-image\&.
107 \fB$MERGED\fR
108 is the name of the file which is being compared\&.
109 \fB$BASE\fR
110 is provided for compatibility with custom merge tool commands and has the same value as
111 \fB$MERGED\fR\&.
114 \-\-tool\-help
115 .RS 4
116 Print a list of diff tools that may be used with
117 \fB\-\-tool\fR\&.
120 \-\-[no\-]symlinks
121 .RS 4
122 \fIgit difftool\fR\(aqs default behavior is create symlinks to the working tree when run in
123 \fB\-\-dir\-diff\fR
124 mode and the right\-hand side of the comparison yields the same content as the file in the working tree\&.
126 Specifying
127 \fB\-\-no\-symlinks\fR
128 instructs
129 \fIgit difftool\fR
130 to create copies instead\&.
131 \fB\-\-no\-symlinks\fR
132 is the default on Windows\&.
135 \-x <command>, \-\-extcmd=<command>
136 .RS 4
137 Specify a custom command for viewing diffs\&.
138 \fIgit\-difftool\fR
139 ignores the configured defaults and runs
140 \fB$command $LOCAL $REMOTE\fR
141 when this option is specified\&. Additionally,
142 \fB$BASE\fR
143 is set in the environment\&.
146 \-g, \-\-[no\-]gui
147 .RS 4
148 When
149 \fIgit\-difftool\fR
150 is invoked with the
151 \fB\-g\fR
153 \fB\-\-gui\fR
154 option the default diff tool will be read from the configured
155 \fBdiff\&.guitool\fR
156 variable instead of
157 \fBdiff\&.tool\fR\&. The
158 \fB\-\-no\-gui\fR
159 option can be used to override this setting\&. If
160 \fBdiff\&.guitool\fR
161 is not set, we will fallback in the order of
162 \fBmerge\&.guitool\fR,
163 \fBdiff\&.tool\fR,
164 \fBmerge\&.tool\fR
165 until a tool is found\&.
168 \-\-[no\-]trust\-exit\-code
169 .RS 4
170 \fIgit\-difftool\fR
171 invokes a diff tool individually on each file\&. Errors reported by the diff tool are ignored by default\&. Use
172 \fB\-\-trust\-exit\-code\fR
173 to make
174 \fIgit\-difftool\fR
175 exit when an invoked diff tool returns a non\-zero exit code\&.
177 \fIgit\-difftool\fR
178 will forward the exit code of the invoked tool when
179 \fB\-\-trust\-exit\-code\fR
180 is used\&.
183 See \fBgit-diff\fR(1) for the full list of supported options\&.
184 .SH "CONFIG VARIABLES"
186 \fIgit difftool\fR falls back to \fIgit mergetool\fR config variables when the difftool equivalents have not been defined\&.
188 diff\&.tool
189 .RS 4
190 The default diff tool to use\&.
193 diff\&.guitool
194 .RS 4
195 The default diff tool to use when
196 \fB\-\-gui\fR
197 is specified\&.
200 difftool\&.<tool>\&.path
201 .RS 4
202 Override the path for the given tool\&. This is useful in case your tool is not in the PATH\&.
205 difftool\&.<tool>\&.cmd
206 .RS 4
207 Specify the command to invoke the specified diff tool\&.
209 See the
210 \fB\-\-tool=<tool>\fR
211 option above for more details\&.
214 difftool\&.prompt
215 .RS 4
216 Prompt before each invocation of the diff tool\&.
219 difftool\&.trustExitCode
220 .RS 4
221 Exit difftool if the invoked diff tool returns a non\-zero exit status\&.
223 See the
224 \fB\-\-trust\-exit\-code\fR
225 option above for more details\&.
227 .SH "SEE ALSO"
229 \fBgit-diff\fR(1)
230 .RS 4
231 Show changes between commits, commit and working tree, etc
234 \fBgit-mergetool\fR(1)
235 .RS 4
236 Run merge conflict resolution tools to resolve merge conflicts
239 \fBgit-config\fR(1)
240 .RS 4
241 Get and set repository or global options
243 .SH "GIT"
245 Part of the \fBgit\fR(1) suite