git-reflog(1)
=============

NAME
----
git-reflog - Manage reflog information


SYNOPSIS
--------
[verse]
'git reflog' <subcommand> <options>

DESCRIPTION
-----------
The command takes various subcommands, and different options
depending on the subcommand:

[verse]
'git reflog' ['show'] [log-options] [<ref>]
'git reflog expire' [--expire=<time>] [--expire-unreachable=<time>]
	[--rewrite] [--updateref] [--stale-fix]
	[--dry-run] [--verbose] [--all | <refs>...]
'git reflog delete' [--rewrite] [--updateref]
	[--dry-run] [--verbose] ref@\{specifier\}...
'git reflog exists' <ref>

Reference logs, or "reflogs", record when the tips of branches and
other references were updated in the local repository. Reflogs are
useful in various Git commands, to specify the old value of a
reference. For example, `HEAD@{2}` means "where HEAD used to be two
moves ago", `master@{one.week.ago}` means "where master used to point
to one week ago in this local repository", and so on. See
linkgit:gitrevisions[7] for more details.

This command manages the information recorded in the reflogs.

The "show" subcommand (which is also the default, in the absence of
any subcommands) shows the log of the reference provided in the
command-line (or `HEAD`, by default). The reflog covers all recent
actions, and in addition the `HEAD` reflog records branch switching.
`git reflog show` is an alias for `git log -g --abbrev-commit
--pretty=oneline`; see linkgit:git-log[1] for more information.

The "expire" subcommand prunes older reflog entries. Entries older
than `expire` time, or entries older than `expire-unreachable` time
and not reachable from the current tip, are removed from the reflog.
This is typically not used directly by end users -- instead, see
linkgit:git-gc[1].

The "delete" subcommand deletes single entries from the reflog. Its
argument must be an _exact_ entry (e.g. "`git reflog delete
master@{2}`"). This subcommand is also typically not used directly by
end users.

The "exists" subcommand checks whether a ref has a reflog.  It exits
with zero status if the reflog exists, and non-zero status if it does
not.

OPTIONS
-------

Options for `show`
~~~~~~~~~~~~~~~~~~

`git reflog show` accepts any of the options accepted by `git log`.


Options for `expire`
~~~~~~~~~~~~~~~~~~~~

--all::
	Process the reflogs of all references.

--expire=<time>::
	Prune entries older than the specified time. If this option is
	not specified, the expiration time is taken from the
	configuration setting `gc.reflogExpire`, which in turn
	defaults to 90 days. `--expire=all` prunes entries regardless
	of their age; `--expire=never` turns off pruning of reachable
	entries (but see `--expire-unreachable`).

--expire-unreachable=<time>::
	Prune entries older than `<time>` that are not reachable from
	the current tip of the branch. If this option is not
	specified, the expiration time is taken from the configuration
	setting `gc.reflogExpireUnreachable`, which in turn defaults
	to 30 days. `--expire-unreachable=all` prunes unreachable
	entries regardless of their age; `--expire-unreachable=never`
	turns off early pruning of unreachable entries (but see
	`--expire`).

--updateref::
	Update the reference to the value of the top reflog entry (i.e.
	<ref>@\{0\}) if the previous top entry was pruned.  (This
	option is ignored for symbolic references.)

--rewrite::
	If a reflog entry's predecessor is pruned, adjust its "old"
	SHA-1 to be equal to the "new" SHA-1 field of the entry that
	now precedes it.

--stale-fix::
	Prune any reflog entries that point to "broken commits". A
	broken commit is a commit that is not reachable from any of
	the reference tips and that refers, directly or indirectly, to
	a missing commit, tree, or blob object.
+
This computation involves traversing all the reachable objects, i.e. it
has the same cost as 'git prune'.  It is primarily intended to fix
corruption caused by garbage collecting using older versions of Git,
which didn't protect objects referred to by reflogs.

-n::
--dry-run::
	Do not actually prune any entries; just show what would have
	been pruned.

--verbose::
	Print extra information on screen.


Options for `delete`
~~~~~~~~~~~~~~~~~~~~

`git reflog delete` accepts options `--updateref`, `--rewrite`, `-n`,
`--dry-run`, and `--verbose`, with the same meanings as when they are
used with `expire`.


GIT
---
Part of the linkgit:git[1] suite
