mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
Merge branch 'ps/reflog-migrate-fixes'
"git refs migrate" to migrate the reflog entries from a refs backend to another had a handful of bugs squashed. * ps/reflog-migrate-fixes: refs: fix invalid old object IDs when migrating reflogs refs: stop unsetting REF_HAVE_OLD for log-only updates refs/files: detect race when generating reflog entry for HEAD refs: fix identity for migrated reflogs ident: fix type of string length parameter builtin/reflog: implement subcommand to write new entries refs: export `ref_transaction_update_reflog()` builtin/reflog: improve grouping of subcommands Documentation/git-reflog: convert to use synopsis type
This commit is contained in:
@@ -8,16 +8,17 @@ git-reflog - Manage reflog information
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git reflog' [show] [<log-options>] [<ref>]
|
||||
'git reflog list'
|
||||
'git reflog expire' [--expire=<time>] [--expire-unreachable=<time>]
|
||||
[synopsis]
|
||||
git reflog [show] [<log-options>] [<ref>]
|
||||
git reflog list
|
||||
git reflog exists <ref>
|
||||
git reflog write <ref> <old-oid> <new-oid> <message>
|
||||
git reflog delete [--rewrite] [--updateref]
|
||||
[--dry-run | -n] [--verbose] <ref>@{<specifier>}...
|
||||
git reflog drop [--all [--single-worktree] | <refs>...]
|
||||
git reflog expire [--expire=<time>] [--expire-unreachable=<time>]
|
||||
[--rewrite] [--updateref] [--stale-fix]
|
||||
[--dry-run | -n] [--verbose] [--all [--single-worktree] | <refs>...]
|
||||
'git reflog delete' [--rewrite] [--updateref]
|
||||
[--dry-run | -n] [--verbose] <ref>@{<specifier>}...
|
||||
'git reflog drop' [--all [--single-worktree] | <refs>...]
|
||||
'git reflog exists' <ref>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@@ -43,11 +44,15 @@ actions, and in addition the `HEAD` reflog records branch switching.
|
||||
|
||||
The "list" subcommand lists all refs which have a corresponding reflog.
|
||||
|
||||
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 "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.
|
||||
|
||||
The "write" subcommand writes a single entry to the reflog of a given
|
||||
reference. This new entry is appended to the reflog and will thus become
|
||||
the most recent entry. The reference name must be fully qualified. Both the old
|
||||
and new object IDs must not be abbreviated and must point to existing objects.
|
||||
The reflog message gets normalized.
|
||||
|
||||
The "delete" subcommand deletes single entries from the reflog, but
|
||||
not the reflog itself. Its argument must be an _exact_ entry (e.g. "`git
|
||||
@@ -58,9 +63,11 @@ The "drop" subcommand completely removes the reflog for the specified
|
||||
references. This is in contrast to "expire" and "delete", both of which
|
||||
can be used to delete reflog entries, but not the reflog itself.
|
||||
|
||||
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.
|
||||
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].
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
@@ -71,65 +78,6 @@ 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.
|
||||
|
||||
--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'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`
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -140,14 +88,74 @@ used with `expire`.
|
||||
Options for `drop`
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
--all::
|
||||
`--all`::
|
||||
Drop the reflogs of all references from all worktrees.
|
||||
|
||||
--single-worktree::
|
||||
`--single-worktree`::
|
||||
By default when `--all` is specified, reflogs from all working
|
||||
trees are dropped. This option limits the processing to reflogs
|
||||
from the current working tree only.
|
||||
|
||||
|
||||
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'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.
|
||||
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
|
||||
Reference in New Issue
Block a user