mirror of
https://github.com/git/git.git
synced 2024-10-31 22:37:54 +01:00
3e1e7624aa
We used the approxidate() parser for "--expire=<timestamp>" options of various commands, but it is better to treat --expire=all and --expire=now a bit more specially than using the current timestamp. Update "git gc" and "git reflog" with a new parsing function for expiry dates. * jc/prune-all: prune: introduce OPT_EXPIRY_DATE() and use it api-parse-options.txt: document "no-" for non-boolean options git-gc.txt, git-reflog.txt: document new expiry options date.c: add parse_expiry_date()
101 lines
3.4 KiB
Text
101 lines
3.4 KiB
Text
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 expire' [--dry-run] [--stale-fix] [--verbose]
|
|
[--expire=<time>] [--expire-unreachable=<time>] [--all] <refs>...
|
|
'git reflog delete' ref@\{specifier\}...
|
|
'git reflog' ['show'] [log-options] [<ref>]
|
|
|
|
Reflog is a mechanism to record when the tip of branches are
|
|
updated. This command is to manage the information recorded in it.
|
|
|
|
The subcommand "expire" is used to prune 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 the end users -- instead, see linkgit:git-gc[1].
|
|
|
|
The subcommand "show" (which is also the default, in the absence of any
|
|
subcommands) will take all the normal log options, and show the log of
|
|
the reference provided in the command-line (or `HEAD`, by default).
|
|
The reflog will cover all recent actions (HEAD reflog records branch switching
|
|
as well). It is an alias for `git log -g --abbrev-commit --pretty=oneline`;
|
|
see linkgit:git-log[1].
|
|
|
|
The reflog is 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", and so on. See linkgit:gitrevisions[7] for
|
|
more details.
|
|
|
|
To delete single entries from the reflog, use the subcommand "delete"
|
|
and specify the _exact_ entry (e.g. "`git reflog delete master@{2}`").
|
|
|
|
|
|
OPTIONS
|
|
-------
|
|
|
|
--stale-fix::
|
|
This revamps the logic -- the definition of "broken commit"
|
|
becomes: a commit that is not reachable from any of the refs and
|
|
there is a missing object among the commit, tree, or blob
|
|
objects reachable from it that is not reachable from any of the
|
|
refs.
|
|
+
|
|
This computation involves traversing all the reachable objects, i.e. it
|
|
has the same cost as 'git prune'. Fortunately, once this is run, we
|
|
should not have to ever worry about missing objects, because the current
|
|
prune and pack-objects know about reflogs and protect objects referred by
|
|
them.
|
|
|
|
--expire=<time>::
|
|
Entries older than this time are pruned. Without the
|
|
option it is taken from configuration `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>::
|
|
Entries older than this time and not reachable from
|
|
the current tip of the branch are pruned. Without the
|
|
option it is taken from configuration
|
|
`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).
|
|
|
|
--all::
|
|
Instead of listing <refs> explicitly, prune all refs.
|
|
|
|
--updateref::
|
|
Update the ref with the sha1 of the top reflog entry (i.e.
|
|
<ref>@\{0\}) after expiring or deleting.
|
|
|
|
--rewrite::
|
|
While expiring or deleting, adjust each reflog entry to ensure
|
|
that the `old` sha1 field points to the `new` sha1 field of the
|
|
previous entry.
|
|
|
|
--verbose::
|
|
Print extra information on screen.
|
|
|
|
GIT
|
|
---
|
|
Part of the linkgit:git[1] suite
|