git-reflog
Manage reflog information
TLDR
Show the reflog for HEAD
$ git reflog
Show the reflog for a given branch
$ git reflog [branch_name]
Show only the 5 latest entries in the reflog
$ git reflog -n [5]
SYNOPSIS
gitreflog <subcommand> <options>
DESCRIPTION
gitreflog [ show ][log -options] [<ref>] gitreflog expire [ --expire=<time>] [ --expire -unreachable=<time>] [ --rewrite] [ --updateref] [ --stale -fix] [ --dry -run | -n] [ --verbose] [ --all [ --single -worktree] | <refs> ...] gitreflog delete [ --rewrite] [ --updateref] [ --dry -run | -n] [ --verbose] ref@{specifier} ... gitreflog exists <ref> .RE 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 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 . gitreflog show is an alias for gitlog -g --abbrev -commit --pretty=oneline ;see 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 git-gc (1). The "delete" subcommand deletes single entries from the reflog . Its argument must be an exact entry (e .g . " gitreflog 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 "
gitreflog show accepts any of the options accepted by gitlog ."Options for expire "
--all Process the reflogs of all references .
--single -worktree By default when --all is specified, reflogs from all working trees are processed . This option limits the processing to reflogs from the current working tree only .
--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 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 gitprune . It is primarily intended to fix corruption caused by garbage collecting using older versions of Git, which didn 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 .