The Git repository browser


Show the repository browser for the current git repository

$ gitk

Show repository browser for a specific file or directory

$ gitk [path/to/file_or_directory]

Show commits made since 1 week ago

$ gitk --since="[1 week ago]"

Show commits older than 1/1/2016

$ gitk --until="[1/1/2015]"

Show at most 100 changes in all branches

$ gitk --max-count=[100] --all


gitk [<options>] [<revision range>] [ --] [<path> ...]


Displays changes in a repository or a selected set of commits . This includes visualizing the commit graph, showing information related to each commit, and the files in the trees of each revision .


To control which revisions to show, gitk supports most options applicable to the gitrev -list command . It also supports a few options applicable to the gitdiff -* commands to control how the changes each commit introduces are shown . Finally, it supports some gitk -specific options .
gitk generally only understands options with arguments in the sticked form (see gitcli (7))due to limitations in the command -line parser .

"rev -list options and arguments"

This manual page describes only the most frequently used options . See git-rev-list (1)for a complete list .

--all Show all refs (branches, tags, etc .) .

--branches[=<pattern>], --tags[=<pattern>], --remotes[=<pattern>] Pretend as if all the branches (tags, remote branches, resp .) are listed on the command line as <commit> . If <pattern> is given, limit refs to ones matching given shell glob . If pattern lacks ? , * ,or [ , /* at the end is implied .

--since=<date> Show commits more recent than a specific date .

--until=<date> Show commits older than a specific date .

--date -order Sort commits by date when possible .

--merge After an attempt to merge stops with conflicts, show the commits on the history between two branches (i .e . the HEAD and the MERGE_HEAD) that modify the conflicted files and do not exist on all the heads being merged .

--left -right Mark which side of a symmetric difference a commit is reachable from . Commits from the left side are prefixed with a < symbol and those from the right with a > symbol .

--full -history When filtering history with <path>... ,does not prune some history . (See "History simplification" in git-log (1) for a more detailed explanation .)

--simplify -merges Additional option to --full -history to remove some needless merges from the resulting history, as there are no selected commits contributing to this merge . (See "History simplification" in git-log (1) for a more detailed explanation .)

--ancestry -path When given a range of commits to display (e .g . commit1. .commit2 or commit2^commit1 ),only display commits that exist directly on the ancestry chain between the commit1 and commit2 ,i .e . commits that are both descendants of commit1 ,and ancestors of commit2 . (See "History simplification" in git-log (1) for a more detailed explanation .)

-L<start>,<end>:<file>, -L:<funcname>:<file> Trace the evolution of the line range given by "<start>,<end>" (or the function name regex <funcname>) within the <file> . You may not give any pathspec limiters . This is currently limited to a walk starting from a single revision, i .e ., you may only give zero or one positive revision arguments . You can specify this option more than once .
Note: gitk (unlike git-log (1))currently only understands this option if you specify it "glued together" with its argument . Do not put a space after -L .
<start> and <end> can take one of these forms:
'-04' '+03' .sp -1

2.3 number
If <start> or <end> is a number, it specifies an absolute line number (lines count from 1) .
'-04' '+03' .sp -1

2.3 /regex/
This form will use the first line matching the given POSIX regex . If <start> is a regex, it will search from the end of the previous -L range, if any, otherwise from the start of file . If <start> is it will search from the start of file . If <end> is a regex, it will search starting at the line given by <start> .
'-04' '+03' .sp -1

2.3 +offset or -offset
This is only valid for <end> and will specify a number of lines before or after the line given by <start> .
If is given in place of <start> and <end>, it is a regular expression that denotes the range from the first funcname line that matches <funcname>, up to the next funcname line . searches from the end of the previous -L range, if any, otherwise from the start of file . searches from the start of file .

<revision range> Limit the revisions to show . This can be either a single revision meaning show from the given revision and back, or it can be a range in the form " <from> . . <to> "to show all revisions between <from> and back to <to> . Note, more advanced revision selection can be applied . For a more complete list of ways to spell object names, see gitrevisions (7).

<path> ... Limit commits to the ones touching files in the given paths . Note, to avoid ambiguity with respect to revision names use " --" to separate the paths from any preceding options .

"gitk -specific options"

--argscmd=<command> Command to be run each time gitk has to determine the revision range to show . The command is expected to print on its standard output a list of additional revisions to be shown, one per line . Use this instead of explicitly specifying a <revisionrange> if the set of commits to show may vary between refreshes .

--select -commit=<ref> Select the specified commit after loading the graph . Default behavior is equivalent to specifying --select -commit=HEAD .


gitk v2 .6 .12 . . include/scsi drivers/scsi Show the changes since version v2.6 .12 that changed any file in the include/scsi or drivers/scsi subdirectories

gitk --since="2 weeks ago" --gitk Show the changes during the last two weeks to the file gitk . The " --" is necessary to avoid confusion with the branch named gitk

gitk --max -count=100 --all --Makefile Show at most 100 changes made to the file Makefile . Instead of only looking for changes in the current branch look in all branches .


User configuration and preferences are stored at:
'-04' '+03' .sp -1

2.3 $XDG_CONFIG_HOME/git/gitk if it exists, otherwise
'-04' '+03' .sp -1

2.3 $HOME/.gitk if it exists
If neither of the above exist then $XDG_CONFIG_HOME/git/gitk is created and used by default . If $XDG_CONFIG_HOME is not set it defaults to $HOME/.config in all cases .


Gitk was the first graphical repository browser . It written in tcl/tk .
gitk is actually maintained as an independent project, but stable versions are distributed as part of the Git suite for the convenience of end users .
gitk -git/ comes from Paul Mackerras gitk project:
.RS 4
git://ozlabs .org/~paulus/gitk .RE


Part of the git (1)suite


qgit(1) A repository browser written in C++ using Qt . tig(1) A minimal repository browser and Git tool output highlighter written in C using Ncurses .

Copied to clipboard
free 100$ digital ocean credit