diff options
Diffstat (limited to 'Documentation/git-reflog.txt')
-rw-r--r-- | Documentation/git-reflog.txt | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/Documentation/git-reflog.txt b/Documentation/git-reflog.txt new file mode 100644 index 0000000000..70791b9fd8 --- /dev/null +++ b/Documentation/git-reflog.txt @@ -0,0 +1,101 @@ +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 |