blob: 35b39960296b69531fff972b6f55c39ed066a655 [file] [log] [blame]
Junio C Hamano7fc9d692005-08-23 01:49:47 -07001gitk(1)
2=======
3
4NAME
5----
Thomas Ackermann2de9b712013-01-21 20:17:53 +01006gitk - The Git repository browser
Junio C Hamano7fc9d692005-08-23 01:49:47 -07007
8SYNOPSIS
9--------
Martin von Zweigbergk7791a1d2011-07-01 22:38:26 -040010[verse]
Jean-Noël Avila2162f9f2023-12-25 21:21:26 +000011'gitk' [<options>] [<revision-range>] [--] [<path>...]
Junio C Hamano7fc9d692005-08-23 01:49:47 -070012
13DESCRIPTION
14-----------
Jonas Fonseca5164b6c2006-08-25 03:04:58 +020015Displays changes in a repository or a selected set of commits. This includes
16visualizing the commit graph, showing information related to each commit, and
17the files in the trees of each revision.
Junio C Hamano7fc9d692005-08-23 01:49:47 -070018
Junio C Hamano7fc9d692005-08-23 01:49:47 -070019OPTIONS
20-------
Junio C Hamano7fc9d692005-08-23 01:49:47 -070021
Thomas Rast744db232013-10-20 18:57:41 +020022To control which revisions to show, gitk supports most options
23applicable to the 'git rev-list' command. It also supports a few
24options applicable to the 'git diff-*' commands to control how the
25changes each commit introduces are shown. Finally, it supports some
26gitk-specific options.
Junio C Hamano7fc9d692005-08-23 01:49:47 -070027
Thomas Rast744db232013-10-20 18:57:41 +020028gitk generally only understands options with arguments in the
Štěpán Němec72fac032023-10-05 11:00:54 +020029'stuck' form (see linkgit:gitcli[7]) due to limitations in the
Jason St. John06ab60c2014-05-21 14:52:26 -040030command-line parser.
Thomas Rast744db232013-10-20 18:57:41 +020031
32rev-list options and arguments
33~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
34
35This manual page describes only the most frequently used options. See
36linkgit:git-rev-list[1] for a complete list.
37
38--all::
39
40 Show all refs (branches, tags, etc.).
41
42--branches[=<pattern>]::
43--tags[=<pattern>]::
44--remotes[=<pattern>]::
45
46 Pretend as if all the branches (tags, remote branches, resp.)
47 are listed on the command line as '<commit>'. If '<pattern>'
48 is given, limit refs to ones matching given shell glob. If
49 pattern lacks '?', '{asterisk}', or '[', '/{asterisk}' at the
50 end is implied.
Jonas Fonseca5164b6c2006-08-25 03:04:58 +020051
52--since=<date>::
53
54 Show commits more recent than a specific date.
55
56--until=<date>::
57
58 Show commits older than a specific date.
59
Thomas Rast744db232013-10-20 18:57:41 +020060--date-order::
Jonas Fonseca44d27752006-09-20 12:23:41 +020061
Thomas Rast744db232013-10-20 18:57:41 +020062 Sort commits by date when possible.
Jonas Fonseca44d27752006-09-20 12:23:41 +020063
Richard Quirk9f1915d2008-04-28 22:58:35 +020064--merge::
65
66 After an attempt to merge stops with conflicts, show the commits on
67 the history between two branches (i.e. the HEAD and the MERGE_HEAD)
Sitaram Chamarty3021faf2009-02-06 10:10:53 +053068 that modify the conflicted files and do not exist on all the heads
69 being merged.
Richard Quirk9f1915d2008-04-28 22:58:35 +020070
Thomas Rast744db232013-10-20 18:57:41 +020071--left-right::
Yann Dirson29f28152008-08-29 00:00:28 +020072
Philip Oakley27ac8372016-07-20 22:10:00 +010073 Mark which side of a symmetric difference a commit is reachable
Thomas Rast744db232013-10-20 18:57:41 +020074 from. Commits from the left side are prefixed with a `<`
75 symbol and those from the right with a `>` symbol.
Alexander Gavrilova2df1fb2008-11-13 20:28:49 +030076
Thomas Rast744db232013-10-20 18:57:41 +020077--full-history::
Alexander Gavrilova2df1fb2008-11-13 20:28:49 +030078
Thomas Rast744db232013-10-20 18:57:41 +020079 When filtering history with '<path>...', does not prune some
80 history. (See "History simplification" in linkgit:git-log[1]
81 for a more detailed explanation.)
82
83--simplify-merges::
84
Matthieu Moybcf96262016-06-28 13:40:11 +020085 Additional option to `--full-history` to remove some needless
Thomas Rast744db232013-10-20 18:57:41 +020086 merges from the resulting history, as there are no selected
87 commits contributing to this merge. (See "History
88 simplification" in linkgit:git-log[1] for a more detailed
89 explanation.)
90
91--ancestry-path::
92
93 When given a range of commits to display
94 (e.g. 'commit1..commit2' or 'commit2 {caret}commit1'), only
95 display commits that exist directly on the ancestry chain
96 between the 'commit1' and 'commit2', i.e. commits that are
97 both descendants of 'commit1', and ancestors of 'commit2'.
98 (See "History simplification" in linkgit:git-log[1] for a more
99 detailed explanation.)
100
Philippe Blainf9c8d8c2020-11-01 17:28:40 +0000101include::line-range-options.txt[]
Thomas Rast0c1cddd2013-11-16 18:37:57 +0100102
Thomas Rast744db232013-10-20 18:57:41 +0200103<revision range>::
Jonas Fonseca5164b6c2006-08-25 03:04:58 +0200104
105 Limit the revisions to show. This can be either a single revision
106 meaning show from the given revision and back, or it can be a range in
107 the form "'<from>'..'<to>'" to show all revisions between '<from>' and
108 back to '<to>'. Note, more advanced revision selection can be applied.
Shawn O. Pearce41a55642007-01-17 21:08:09 -0500109 For a more complete list of ways to spell object names, see
Jonathan Nieder9d83e382010-10-11 11:03:32 -0500110 linkgit:gitrevisions[7].
Jonas Fonseca5164b6c2006-08-25 03:04:58 +0200111
Abhijit Menon-Senf448e242008-07-30 15:03:43 +0530112<path>...::
Jonas Fonseca5164b6c2006-08-25 03:04:58 +0200113
114 Limit commits to the ones touching files in the given paths. Note, to
Mike Ralphson5a4aaaf2009-03-03 19:29:21 +0000115 avoid ambiguity with respect to revision names use "--" to separate the paths
Pavel Roskin3dff5372007-02-03 23:49:16 -0500116 from any preceding options.
Junio C Hamano7fc9d692005-08-23 01:49:47 -0700117
Thomas Rast744db232013-10-20 18:57:41 +0200118gitk-specific options
119~~~~~~~~~~~~~~~~~~~~~
120
121--argscmd=<command>::
122
123 Command to be run each time gitk has to determine the revision
124 range to show. The command is expected to print on its
125 standard output a list of additional revisions to be shown,
126 one per line. Use this instead of explicitly specifying a
Jean-Noël Avila2162f9f2023-12-25 21:21:26 +0000127 '<revision-range>' if the set of commits to show may vary
Thomas Rast744db232013-10-20 18:57:41 +0200128 between refreshes.
129
130--select-commit=<ref>::
131
132 Select the specified commit after loading the graph.
133 Default behavior is equivalent to specifying '--select-commit=HEAD'.
134
Linus Torvaldsbd663612005-10-30 20:05:32 -0800135Examples
136--------
137gitk v2.6.12.. include/scsi drivers/scsi::
138
Markus Heidelberg04c8ce92008-12-19 13:14:18 +0100139 Show the changes since version 'v2.6.12' that changed any
Linus Torvaldsbd663612005-10-30 20:05:32 -0800140 file in the include/scsi or drivers/scsi subdirectories
141
seane9940042006-05-05 15:05:24 -0400142gitk --since="2 weeks ago" \-- gitk::
Linus Torvaldsbd663612005-10-30 20:05:32 -0800143
144 Show the changes during the last two weeks to the file 'gitk'.
145 The "--" is necessary to avoid confusion with the *branch* named
146 'gitk'
147
Ralf Wildenhues1d5bf7f2007-10-19 19:24:43 +0200148gitk --max-count=100 --all \-- Makefile::
Jonas Fonseca44d27752006-09-20 12:23:41 +0200149
150 Show at most 100 changes made to the file 'Makefile'. Instead of only
151 looking for changes in the current branch look in all branches.
152
Clifford Caoilee8095072008-04-12 18:50:20 +0900153Files
154-----
Astril Hayato36dc8272014-03-20 13:33:49 +0000155User configuration and preferences are stored at:
156
Corentin BOMPARD68ed71b2019-03-06 14:04:46 +0100157* `$XDG_CONFIG_HOME/git/gitk` if it exists, otherwise
158* `$HOME/.gitk` if it exists
Astril Hayato36dc8272014-03-20 13:33:49 +0000159
Corentin BOMPARD68ed71b2019-03-06 14:04:46 +0100160If neither of the above exist then `$XDG_CONFIG_HOME/git/gitk` is created and
Astril Hayato36dc8272014-03-20 13:33:49 +0000161used by default. If '$XDG_CONFIG_HOME' is not set it defaults to
Corentin BOMPARD68ed71b2019-03-06 14:04:46 +0100162`$HOME/.config` in all cases.
Clifford Caoilee8095072008-04-12 18:50:20 +0900163
Thomas Rast744db232013-10-20 18:57:41 +0200164History
165-------
166Gitk was the first graphical repository browser. It's written in
Philip Oakleyb6ca73d2017-01-12 21:32:39 +0000167tcl/tk.
Thomas Rast744db232013-10-20 18:57:41 +0200168
Philip Oakleyb6ca73d2017-01-12 21:32:39 +0000169'gitk' is actually maintained as an independent project, but stable
170versions are distributed as part of the Git suite for the convenience
171of end users.
172
173gitk-git/ comes from Paul Mackerras's gitk project:
174
175 git://ozlabs.org/~paulus/gitk
Thomas Rast744db232013-10-20 18:57:41 +0200176
Junio C Hamano56ae8df2008-05-28 16:55:27 -0700177SEE ALSO
Jonas Fonseca5164b6c2006-08-25 03:04:58 +0200178--------
179'qgit(1)'::
180 A repository browser written in C++ using Qt.
181
Jonas Fonseca5164b6c2006-08-25 03:04:58 +0200182'tig(1)'::
Thomas Ackermann2de9b712013-01-21 20:17:53 +0100183 A minimal repository browser and Git tool output highlighter written
Jonas Fonseca5164b6c2006-08-25 03:04:58 +0200184 in C using Ncurses.
185
Junio C Hamano7fc9d692005-08-23 01:49:47 -0700186GIT
187---
Christian Couder9e1f0a82008-06-06 09:07:32 +0200188Part of the linkgit:git[1] suite