]>
Commit | Line | Data |
---|---|---|
4aec56d1 JH |
1 | git-reflog(1) |
2 | ============= | |
3 | ||
4 | NAME | |
5 | ---- | |
6 | git-reflog - Manage reflog information | |
7 | ||
8 | ||
9 | SYNOPSIS | |
10 | -------- | |
7791a1d9 | 11 | [verse] |
cf39f54e | 12 | 'git reflog' <subcommand> <options> |
4aec56d1 JH |
13 | |
14 | DESCRIPTION | |
15 | ----------- | |
cf39f54e LT |
16 | The command takes various subcommands, and different options |
17 | depending on the subcommand: | |
18 | ||
19 | [verse] | |
04c2407e | 20 | 'git reflog' ['show'] [log-options] [<ref>] |
fe2a1816 MH |
21 | 'git reflog expire' [--expire=<time>] [--expire-unreachable=<time>] |
22 | [--rewrite] [--updateref] [--stale-fix] | |
c9ef0d95 | 23 | [--dry-run | -n] [--verbose] [--all [--single-worktree] | <refs>...] |
fe2a1816 | 24 | 'git reflog delete' [--rewrite] [--updateref] |
0ba01403 | 25 | [--dry-run | -n] [--verbose] ref@\{specifier\}... |
afcb2e7a | 26 | 'git reflog exists' <ref> |
fe2a1816 MH |
27 | |
28 | Reference logs, or "reflogs", record when the tips of branches and | |
29 | other references were updated in the local repository. Reflogs are | |
30 | useful in various Git commands, to specify the old value of a | |
31 | reference. For example, `HEAD@{2}` means "where HEAD used to be two | |
32 | moves ago", `master@{one.week.ago}` means "where master used to point | |
33 | to one week ago in this local repository", and so on. See | |
34 | linkgit:gitrevisions[7] for more details. | |
35 | ||
36 | This command manages the information recorded in the reflogs. | |
37 | ||
38 | The "show" subcommand (which is also the default, in the absence of | |
39 | any subcommands) shows the log of the reference provided in the | |
40 | command-line (or `HEAD`, by default). The reflog covers all recent | |
41 | actions, and in addition the `HEAD` reflog records branch switching. | |
42 | `git reflog show` is an alias for `git log -g --abbrev-commit | |
43 | --pretty=oneline`; see linkgit:git-log[1] for more information. | |
44 | ||
45 | The "expire" subcommand prunes older reflog entries. Entries older | |
46 | than `expire` time, or entries older than `expire-unreachable` time | |
47 | and not reachable from the current tip, are removed from the reflog. | |
48 | This is typically not used directly by end users -- instead, see | |
49 | linkgit:git-gc[1]. | |
50 | ||
51 | The "delete" subcommand deletes single entries from the reflog. Its | |
52 | argument must be an _exact_ entry (e.g. "`git reflog delete | |
53 | master@{2}`"). This subcommand is also typically not used directly by | |
54 | end users. | |
4aec56d1 | 55 | |
afcb2e7a DT |
56 | The "exists" subcommand checks whether a ref has a reflog. It exits |
57 | with zero status if the reflog exists, and non-zero status if it does | |
58 | not. | |
4aec56d1 | 59 | |
fe2a1816 MH |
60 | OPTIONS |
61 | ------- | |
97e92e2c | 62 | |
fe2a1816 MH |
63 | Options for `show` |
64 | ~~~~~~~~~~~~~~~~~~ | |
4aec56d1 | 65 | |
fe2a1816 | 66 | `git reflog show` accepts any of the options accepted by `git log`. |
552cecc2 | 67 | |
4aec56d1 | 68 | |
fe2a1816 MH |
69 | Options for `expire` |
70 | ~~~~~~~~~~~~~~~~~~~~ | |
4aec56d1 | 71 | |
fe2a1816 MH |
72 | --all:: |
73 | Process the reflogs of all references. | |
cb877cd7 | 74 | |
c9ef0d95 NTND |
75 | --single-worktree:: |
76 | By default when `--all` is specified, reflogs from all working | |
77 | trees are processed. This option limits the processing to reflogs | |
78 | from the current working tree only. | |
79 | ||
4aec56d1 | 80 | --expire=<time>:: |
fe2a1816 MH |
81 | Prune entries older than the specified time. If this option is |
82 | not specified, the expiration time is taken from the | |
83 | configuration setting `gc.reflogExpire`, which in turn | |
84 | defaults to 90 days. `--expire=all` prunes entries regardless | |
85 | of their age; `--expire=never` turns off pruning of reachable | |
86 | entries (but see `--expire-unreachable`). | |
4aec56d1 JH |
87 | |
88 | --expire-unreachable=<time>:: | |
fe2a1816 MH |
89 | Prune entries older than `<time>` that are not reachable from |
90 | the current tip of the branch. If this option is not | |
91 | specified, the expiration time is taken from the configuration | |
92 | setting `gc.reflogExpireUnreachable`, which in turn defaults | |
93 | to 30 days. `--expire-unreachable=all` prunes unreachable | |
94 | entries regardless of their age; `--expire-unreachable=never` | |
61929404 | 95 | turns off early pruning of unreachable entries (but see |
fe2a1816 | 96 | `--expire`). |
4aec56d1 | 97 | |
cf2756ae | 98 | --updateref:: |
fe2a1816 | 99 | Update the reference to the value of the top reflog entry (i.e. |
5e6f003c MH |
100 | <ref>@\{0\}) if the previous top entry was pruned. (This |
101 | option is ignored for symbolic references.) | |
cf2756ae BC |
102 | |
103 | --rewrite:: | |
fe2a1816 MH |
104 | If a reflog entry's predecessor is pruned, adjust its "old" |
105 | SHA-1 to be equal to the "new" SHA-1 field of the entry that | |
106 | now precedes it. | |
107 | ||
108 | --stale-fix:: | |
109 | Prune any reflog entries that point to "broken commits". A | |
110 | broken commit is a commit that is not reachable from any of | |
111 | the reference tips and that refers, directly or indirectly, to | |
112 | a missing commit, tree, or blob object. | |
113 | + | |
114 | This computation involves traversing all the reachable objects, i.e. it | |
115 | has the same cost as 'git prune'. It is primarily intended to fix | |
116 | corruption caused by garbage collecting using older versions of Git, | |
117 | which didn't protect objects referred to by reflogs. | |
118 | ||
119 | -n:: | |
120 | --dry-run:: | |
121 | Do not actually prune any entries; just show what would have | |
122 | been pruned. | |
cf2756ae | 123 | |
a5d41015 MB |
124 | --verbose:: |
125 | Print extra information on screen. | |
126 | ||
fe2a1816 MH |
127 | |
128 | Options for `delete` | |
129 | ~~~~~~~~~~~~~~~~~~~~ | |
130 | ||
131 | `git reflog delete` accepts options `--updateref`, `--rewrite`, `-n`, | |
132 | `--dry-run`, and `--verbose`, with the same meanings as when they are | |
133 | used with `expire`. | |
134 | ||
135 | ||
4aec56d1 JH |
136 | GIT |
137 | --- | |
9e1f0a85 | 138 | Part of the linkgit:git[1] suite |