| git-reflog(1) |
| ============= |
| |
| NAME |
| ---- |
| git-reflog - Manage reflog information |
| |
| |
| SYNOPSIS |
| -------- |
| [verse] |
| 'git reflog' [show] [<log-options>] [<ref>] |
| 'git reflog list' |
| '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 exists' <ref> |
| |
| 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 "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. |
| |
| --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` |
| ~~~~~~~~~~~~~~~~~~~~ |
| |
| `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 |