| 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 |