tog
— Git
repository browser
tog |
[-hV ] command
[arg ...] |
tog
is an interactive read-only browser
for Git repositories. This repository format is described in
git-repository(5).
tog
supports several types of views which
display repository data:
- Log view
- Displays commits in the repository's history. This view is displayed
initially if no command is specified, or if just a
path is specified.
- Diff view
- Displays changes made in a particular commit.
- Blame view
- Displays the line-by-line history of a file.
- Tree view
- Displays the tree corresponding to a particular commit.
- Ref view
- Displays references in the repository.
tog
provides global and command-specific
key bindings and options. Some command-specific key bindings may be prefixed
with an integer, which is denoted by N in the descriptions below, and is
used as a modifier to the operation as indicated.
tog
will echo digits to the screen when count
modifiers are entered, and complete the sequence upon input of the first
non-numeric character. Count modifiers can be aborted by entering an
unmapped key. Once a compound command is executed, the operation can be
cancelled with C-g
or
Backspace
.
Global options must precede the command name, and are as
follows:
-h
- Display usage information.
-V
,
--version
- Display program version and exit immediately.
The global key bindings are:
H,
F1
- Display run-time help. Key bindings for the focussed view will be
displayed. Pressing this again inside the help view will toggle the
display of key bindings for all
tog
views.
Q
- Quit
tog
.
q
- Quit the view which is in focus.
Tab
- Switch focus between views.
F
- Toggle fullscreen mode for a split-screen view.
tog
will automatically use vertical split-screen
views if the size of the terminal window is sufficiently large.
S
- Switch the current split-screen layout, and render all active views in
this new layout. The split-screen layout can be either vertical or
horizontal. If the terminal is not wide enough when switching to a
vertical split, views will render in fullscreen.
-
- When in a split-screen view, decrease the size of the focussed split N
increments (default: 1).
+
- When in a split-screen view, increase the size of the focussed split N
increments (default: 1).
G
- Go to line N in the view (default: last line).
g
- Go to line N in the view (default: first line).
Right-arrow,
l
- Scroll view to the right N increments (default: 1).
Output moves left on the screen.
Left-arrow,
h
- Scroll view to the left N increments (default: 1).
Output moves right on the screen.
$
- Scroll view to the rightmost position.
0
- Scroll view left to the start of the line.
The commands for tog
are as follows:
log
[-b
] [-c
commit] [-r
repository-path] [path]
- Display history of a repository. If a path is
specified, show only commits which modified this path. If invoked in a
work tree, the path is interpreted relative to the
current working directory, and the work tree's path prefix is implicitly
prepended. Otherwise, the path is interpreted relative to the repository
root.
If invoked in a work tree, the log entry of the work tree's
base commit will be prefixed with one of the following annotations:
* |
work tree's base commit and the base commit of all tracked files
matches the branch tip |
~ |
work tree comprises mixed commits or its base commit is
out-of-date |
This command is also executed if no explicit command is
specified.
The key bindings for tog log
are as
follows (N denotes optional prefixed count modifier):
Down-arrow,
j, >, Full stop, Ctrl-n
- Move the selection cursor down N lines (default: 1).
Up-arrow,
k, <, Comma, Ctrl-p
- Move the selection cursor up N lines (default: 1).
Page-down,
Space, Ctrl+f, f
- Move the selection cursor down N pages (default: 1).
Page-up,
Ctrl+b, b
- Move the selection cursor up N pages (default: 1).
Ctrl+d,
d
- Move the selection cursor down N half pages (default: 1).
Ctrl+u,
u
- Move the selection cursor up N half pages (default: 1).
Home,
=
- Move the cursor to the newest commit.
End,
*
- Move the cursor to the oldest commit. This will traverse all commits
on the current branch which may take a long time depending on the
number of commits in branch history. If needed, this operation can be
cancelled with
C-g
or
Backspace
.
g
- Move the cursor to commit N (default: 1).
G
- Like
g
but defaults to the oldest commit.
Enter
- Open a
diff
view showing file changes made in
the currently selected commit.
T
- Open a
tree
view showing the tree for the
currently selected commit.
Backspace
- Show log entries for the parent directory of the currently selected
path. However when an active search is in progress or when additional
commits are loaded,
Backspace
aborts the
running operation.
/
- Prompt for a search pattern and start searching for matching commits.
The search pattern is an extended regular expression which is matched
against a commit's author name, committer name, log message, and
commit ID SHA1 hash. Regular expression syntax is documented in
re_format(7).
&
- Prompt for a pattern and limit the log view's list of commits to those
which match the pattern. If no pattern is specified, i.e. the
&
prompt is immediately closed with the
Enter key, then the pattern is cleared. Until the pattern is cleared,
the limited list of commits replaces the full list of commits for all
operations supported by the log view. For example, a search started
with /
will search the limited list of
commits, rather than searching all commits. The pattern is an extended
regular expression which is matched against a commit's author name,
committer name, log message, and commit ID SHA1 hash. Regular
expression syntax is documented in
re_format(7).
n
- Find the Nth next commit which matches the current search pattern
(default: 1).
Searching continues until either a match is found or
C-g
or the Backspace
key is pressed.
N
- Find the Nth previous commit which matches the current search pattern
(default: 1).
Searching continues until either a match is found or
C-g
or the Backspace
key is pressed.
Ctrl+l
- Reload the
log
view with new commits found in
the repository.
B
- Reload the
log
view and toggle display of
merged commits. The -b
option determines
whether merged commits are displayed initially.
R
- Open a
ref
view listing all references in the
repository. This can then be used to open a new
log
view for arbitrary branches and tags.
@
- Toggle between showing the committer name and the author name.
The options for tog log
are as
follows:
-b
- Display individual commits which were merged into the current branch
from other branches. By default,
tog log
shows
the linear history of the current branch only. The
B
key binding can be used to toggle display of
merged commits at run-time.
-c
commit
- Start traversing history at the specified
commit. The expected argument is a commit ID
SHA1 hash, or a reference name or keyword which will be resolved to a
commit ID. An abbreviated hash argument will be expanded to a full
SHA1 hash automatically, provided the abbreviation is unique. The
keywords ":base" and ":head" resolve to the work
tree's base commit and branch head, respectively. The former is only
valid if invoked in a work tree, while the latter will resolve to the
tip of the work tree's current branch if invoked in a work tree,
otherwise it will resolve to the repository's HEAD reference. Keywords
and references may be appended with ":+" or ":-"
modifiers and an optional integer N to denote the Nth descendant or
antecedent by first parent traversal, respectively; for example,
:head:-2 denotes the work tree branch head's 2nd
generation ancestor, and :base:+4 denotes the 4th
generation descendant of the work tree's base commit. Similarly,
foobar:+3 will denote the 3rd generation descendant
of the commit resolved by the "foobar" reference. A
":+" or ":-" modifier without a trailing integer
has an implicit "1" appended (e.g.,
:base:+ is equivalent to
:base:+1).
-r
repository-path
- Use the repository at the specified path. If not specified, assume the
repository is located at or above the current working directory. If
this directory is a got(1) work tree, use the
repository path associated with this work tree.
diff
[-aw
] [-C
number] [-r
repository-path] object1
object2
- Display the differences between two objects in the repository. Treat each
of the two arguments as a reference, a tag name, an object ID SHA1 hash,
or a keyword and display differences between the corresponding objects.
Both objects must be of the same type (blobs, trees, or commits). An
abbreviated hash argument will be expanded to a full SHA1 hash
automatically, provided the abbreviation is unique. The keywords
":base" and ":head" resolve to the work tree's base
commit and branch head, respectively. The former is only valid if invoked
in a work tree, while the latter will resolve to the tip of the work
tree's current branch if invoked in a work tree, otherwise it will resolve
to the repository's HEAD reference. Keywords and references may be
appended with ":+" or ":-" modifiers and an optional
integer N to denote the Nth descendant or antecedent by first parent
traversal, respectively; for example, :head:-2 denotes
the work tree branch head's 2nd generation ancestor, and
:base:+4 denotes the 4th generation descendant of the
work tree's base commit. Similarly, foobar:+3 will
denote the 3rd generation descendant of the commit resolved by the
"foobar" reference. A ":+" or ":-" modifier
without a trailing integer has an implicit "1" appended (e.g.,
:base:+ is equivalent to :base:+1).
The key bindings for tog diff
are as
follows (N denotes optional prefixed count modifier):
a
- Toggle treatment of file contents as ASCII text even if binary data
was detected.
Down-arrow,
j, Ctrl-n
- Scroll down N lines (default: 1).
Up-arrow,
k, Ctrl-p
- Scroll up N lines (default: 1).
Page-down,
Space, Ctrl+f, f
- Scroll down N pages (default: 1).
Page-up,
Ctrl+b, b
- Scroll up N pages (default: 1).
Ctrl+d,
d
- Scroll down N half pages (default: 1).
Ctrl+u,
u
- Scroll up N half pages (default: 1).
Home
- Scroll to the top of the view.
End
- Scroll to the bottom of the view.
g
- Scroll to line N (default: 1).
G
- Like
g
but defaults to the last line in the
diff.
(
- Navigate to the Nth previous file in the diff (default: 1).
)
- Navigate to the Nth next file in the diff (default: 1).
{
- Navigate to the Nth previous hunk in the diff (default: 1).
}
- Navigate to the Nth next hunk in the diff (default: 1).
[
- Reduce diff context by N lines (default: 1).
]
- Increase diff context by N lines (default: 1).
<, Comma,
K
- If the
diff
view was opened via the
log
view, move to the Nth previous (younger)
commit. If the diff was opened via the blame
view, move to the Nth previous line and load the corresponding commit
(default: 1).
>,
Full stop, J
- If the
diff
view was opened via the
log
view, move to the Nth next (older) commit.
If the diff was opened via the blame
view,
move to the Nth next line and load the corresponding commit (default:
1).
/
- Prompt for a search pattern and start searching for matching lines.
The search pattern is an extended regular expression. Regular
expression syntax is documented in
re_format(7).
n
- Find the Nth next line which matches the current search pattern
(default: 1).
N
- Find the Nth previous line which matches the current search pattern
(default: 1).
w
- Toggle display of whitespace-only changes.
A
- Change the diff algorithm. Supported diff algorithms are Myers (quick
and dirty) and Patience (slow and tidy). This is a global setting
which also affects the
blame
view.
The options for tog diff
are as
follows:
-a
- Treat file contents as ASCII text even if binary data is
detected.
-C
number
- Set the number of context lines shown in the diff. By default, 3 lines
of context are shown.
-r
repository-path
- Use the repository at the specified path. If not specified, assume the
repository is located at or above the current working directory. If
this directory is a got(1) work tree, use the
repository path associated with this work tree.
-w
- Ignore whitespace-only changes.
blame
[-c
commit]
[-r
repository-path]
path
- Display line-by-line history of a file at the specified path.
The key bindings for tog blame
are as
follows (N denotes optional prefixed count modifier):
Down-arrow,
j, Ctrl-n
- Move the selection cursor down N pages (default: 1).
Up-arrow,
k, Ctrl-p
- Move the selection cursor up N pages (default: 1).
Page-down,
Space, Ctrl+f, f
- Move the selection cursor down N pages (default: 1).
Page-up,
Ctrl+b, b
- Move the selection cursor up N pages (default: 1).
Ctrl+d,
d
- Move the selection cursor down N half pages (default: 1).
Ctrl+u,
u
- Move the selection cursor up N half pages (default: 1).
Home
- Move the selection cursor to the first line of the file.
End
- Move the selection cursor to the last line of the file.
g
- Move the selection cursor to line N (default: 1).
G
- Like
g
but defaults to the last line in the
file.
Enter
- Open a
diff
view for the currently selected
line's commit.
c
- Reload the
blame
view with the version of the
file as found in the currently selected line's commit.
p
- Reload the
blame
view with the version of the
file as found in the parent commit of the currently selected line's
commit.
C
- Reload the
blame
view with the previously
blamed commit.
L
- Open a
log
view for the currently selected
annotated line.
/
- Prompt for a search pattern and start searching for matching lines.
The search pattern is an extended regular expression. Regular
expression syntax is documented in
re_format(7).
n
- Find the Nth next line which matches the current search pattern
(default: 1).
N
- Find the Nth previous line which matches the current search pattern
(default: 1).
A
- Change the diff algorithm. Supported diff algorithms are Myers (quick
and dirty) and Patience (slow and tidy). This is a global setting
which also affects the
diff
view.
The options for tog blame
are as
follows:
-c
commit
- Start traversing history at the specified
commit. The expected argument is a commit ID
SHA1 hash, or a reference name or keyword which will be resolved to a
commit ID. An abbreviated hash argument will be expanded to a full
SHA1 hash automatically, provided the abbreviation is unique. The
keywords ":base" and ":head" resolve to the work
tree's base commit and branch head, respectively. The former is only
valid if invoked in a work tree, while the latter will resolve to the
tip of the work tree's current branch if invoked in a work tree,
otherwise it will resolve to the repository's HEAD reference. Keywords
and references may be appended with ":+" or ":-"
modifiers and an optional integer N to denote the Nth descendant or
antecedent by first parent traversal, respectively; for example,
:head:-2 denotes the work tree branch head's 2nd
generation ancestor, and :base:+4 denotes the 4th
generation descendant of the work tree's base commit. Similarly,
foobar:+3 will denote the 3rd generation descendant
of the commit resolved by the "foobar" reference. A
":+" or ":-" modifier without a trailing integer
has an implicit "1" appended (e.g.,
:base:+ is equivalent to
:base:+1).
-r
repository-path
- Use the repository at the specified path. If not specified, assume the
repository is located at or above the current working directory. If
this directory is a got(1) work tree, use the
repository path associated with this work tree.
tree
[-c
commit]
[-r
repository-path]
[path]
- Display the repository tree. If a path is specified,
show tree entries at this path.
Displayed tree entries may carry one of the following trailing
annotations:
@ |
entry is a symbolic link |
/ |
entry is a directory |
* |
entry is an executable file |
$ |
entry is a Git submodule |
Symbolic link entries are also annotated with the target path
of the link.
The key bindings for tog tree
are as
follows (N denotes optional prefixed count modifier):
Down-arrow,
j, Ctrl-n
- Move the selection cursor down N lines (default: 1).
Up-arrow,
k, Ctrl-p
- Move the selection cursor up N lines (default: 1).
Page-down,
Space, Ctrl+f, f
- Move the selection cursor down N pages (default: 1).
Page-up,
Ctrl+b, b
- Move the selection cursor up N pages (default: 1).
Ctrl+d,
d
- Move the selection cursor down N half pages (default: 1).
Ctrl+u,
u
- Move the selection cursor up N half pages (default: 1).
Home,
=
- Move the selection cursor to the first entry.
End,
*
- Move the selection cursor to the last entry.
g
- Move the selection cursor to entry N (default: 1).
G
- Like
g
but defaults to the last entry.
Enter
- Enter the currently selected directory, or switch to the
blame
view for the currently selected
file.
L
- Open a
log
view for the currently selected
tree entry.
R
- Open a
ref
view listing all references in the
repository. This can then be used to open a new
tree
view for arbitrary branches and
tags.
Backspace
- Move back to the Nth parent directory (default: 1).
i
- Show object IDs for all objects displayed in the
tree
view.
/
- Prompt for a search pattern and start searching for matching tree
entries. The search pattern is an extended regular expression which is
matched against the tree entry's name. Regular expression syntax is
documented in re_format(7).
n
- Find the Nth next tree entry which matches the current search pattern
(default: 1).
N
- Find the Nth previous tree entry which matches the current search
pattern (default: 1).
The options for tog tree
are as
follows:
-c
commit
- Start traversing history at the specified
commit. The expected argument is a commit ID
SHA1 hash, or a reference name or keyword which will be resolved to a
commit ID. An abbreviated hash argument will be expanded to a full
SHA1 hash automatically, provided the abbreviation is unique. The
keywords ":base" and ":head" resolve to the work
tree's base commit and branch head, respectively. The former is only
valid if invoked in a work tree, while the latter will resolve to the
tip of the work tree's current branch if invoked in a work tree,
otherwise it will resolve to the repository's HEAD reference. Keywords
and references may be appended with ":+" or ":-"
modifiers and an optional integer N to denote the Nth descendant or
antecedent by first parent traversal, respectively; for example,
:head:-2 denotes the work tree branch head's 2nd
generation ancestor, and :base:+4 denotes the 4th
generation descendant of the work tree's base commit. Similarly,
foobar:+3 will denote the 3rd generation descendant
of the commit resolved by the "foobar" reference. A
":+" or ":-" modifier without a trailing integer
has an implicit "1" appended (e.g.,
:base:+ is equivalent to
:base:+1).
-r
repository-path
- Use the repository at the specified path. If not specified, assume the
repository is located at or above the current working directory. If
this directory is a got(1) work tree, use the
repository path associated with this work tree.
ref
[-r
repository-path]
- Display references in the repository.
The key bindings for tog ref
are as
follows (N denotes optional prefixed count modifier):
Down-arrow,
j, Ctrl-n
- Move the selection cursor down N lines (default: 1).
Up-arrow,
k, Ctrl-p
- Move the selection cursor up N lines (default: 1).
Page-down,
Space, Ctrl+f, f
- Move the selection cursor down N pages (default: 1).
Page-up,
Ctrl+b, b
- Move the selection cursor up N pages (default: 1).
Ctrl+d,
d
- Move the selection cursor down N half pages (default: 1).
Ctrl+u,
u
- Move the selection cursor up N half pages (default: 1).
Home,
=
- Move the selection cursor to the first reference.
End,
*
- Move the selection cursor to the last reference.
g
- Move the selection cursor to reference N (default: 1).
G
- Like
g
but defaults to the last
reference.
Enter
- Open a
log
view which begins traversing
history at the commit resolved via the currently selected
reference.
T
- Open a
tree
view showing the tree resolved via
the currently selected reference.
i
- Show object IDs for all non-symbolic references displayed in the
ref
view.
m
- Show last modified date of each displayed reference.
o
- Toggle display order of references between sort by name and sort by
timestamp.
/
- Prompt for a search pattern and start searching for matching
references. The search pattern is an extended regular expression which
is matched against absolute reference names. Regular expression syntax
is documented in re_format(7).
n
- Find the Nth next reference which matches the current search pattern
(default: 1).
N
- Find the Nth previous reference which matches the current search
pattern (default: 1).
Ctrl+l
- Reload the list of references displayed by the
ref
view.
The options for tog ref
are as
follows:
-r
repository-path
- Use the repository at the specified path. If not specified, assume the
repository is located at or above the current working directory. If
this directory is a got(1) work tree, use the
repository path associated with this work tree.
TOG_COLORS
tog
shows colorized output if this variable is set
to a non-empty value. The default color scheme can be modified by setting
the environment variables documented below. The colors available in color
schemes are “black”, “red”,
“green”, “yellow”, “blue”,
“magenta”, “cyan”, and “default”
which maps to the terminal's default foreground color.
TOG_COLOR_AUTHOR
- The color used to mark up author information. If not set, the default
value “cyan” is used.
TOG_COLOR_COMMIT
- The color used to mark up commit IDs. If not set, the default value
“green” is used.
TOG_COLOR_DATE
- The color used to mark up date information. If not set, the default value
“yellow” is used.
- The color used to mark up chunk header lines in diffs. If not set, the
default value “yellow” is used.
TOG_COLOR_DIFF_META
- The color used to mark up meta data in diffs. If not set, the default
value “green” is used.
TOG_COLOR_DIFF_MINUS
- The color used to mark up removed lines in diffs. If not set, the default
value “magenta” is used.
TOG_COLOR_DIFF_PLUS
- The color used to mark up added lines in diffs. If not set, the default
value “cyan” is used.
TOG_COLOR_REFS_BACKUP
- The color used to mark up references in the
“refs/got/backup/” namespace. If not set, the default value
“cyan” is used.
TOG_COLOR_REFS_HEADS
- The color used to mark up references in the “refs/heads/”
namespace. If not set, the default value “green” is
used.
TOG_COLOR_REFS_REMOTES
- The color used to mark up references in the “refs/remotes/”
namespace. If not set, the default value “yellow” is
used.
TOG_COLOR_REFS_TAGS
- The color used to mark up references in the “refs/tags/”
namespace. If not set, the default value “magenta” is
used.
TOG_COLOR_TREE_DIRECTORY
- The color used to mark up directory tree entries. If not set, the default
value “cyan” is used.
TOG_COLOR_TREE_EXECUTABLE
- The color used to mark up executable file tree entries. If not set, the
default value “green” is used.
TOG_COLOR_TREE_SUBMODULE
- The color used to mark up submodule tree entries. If not set, the default
value “magenta” is used.
TOG_COLOR_TREE_SYMLINK
- The color used to mark up symbolic link tree entries. If not set, the
default value “magenta” is used.
TOG_DIFF_ALGORITHM
- Determines the default diff algorithm used by
tog
.
Supported diff algorithms are Myers (quick and dirty) and Patience (slow
and tidy). Valid values for TOG_DIFF_ALGORITHM
are
“patience” and “myers”. If unset, the Patience
diff algorithm will be used by default.
TOG_VIEW_SPLIT_MODE
- Determines the default layout of split-screen views. If set to
“h” or “H”,
tog
will
use horizontal split by default. Otherwise, vertical split will be used.
The S
key can be used to switch between vertical
and horizontal split layout at run-time.
The tog
utility exits 0 on success,
and >0 if an error occurs.