| git-reflog(1) | |
| ============= | |
| NAME | |
| ---- | |
| git-reflog - Manage reflog information | |
| SYNOPSIS | |
| -------- | |
| [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>...] | |
| DESCRIPTION | |
| ----------- | |
| This command manages the information recorded in the reflogs. | |
| 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. | |
| The command takes various subcommands, and different options | |
| depending on the subcommand: | |
| 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 "list" subcommand lists all refs which have a corresponding reflog. | |
| 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 | |
| reflog delete master@{2}`"). This subcommand is also typically not used | |
| directly by end users. | |
| 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 "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 | |
| ------- | |
| Options for `show` | |
| ~~~~~~~~~~~~~~~~~~ | |
| `git reflog show` accepts any of the options accepted by `git log`. | |
| 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`. | |
| Options for `drop` | |
| ~~~~~~~~~~~~~~~~~~ | |
| `--all`:: | |
| Drop the reflogs of all references from all worktrees. | |
| `--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 |