Skip to content

Commit cb877cd

Browse files
jnarebgitster
authored andcommitted
Document git reflog --stale-fix
Document --stale-fix, used in "git reflog expire --stale-fix --all" to remove invalid reflog entries, to fix situation after running non reflog-aware git-prune from an older git in the presence of reflogs (see RelNotes-1.5.0.txt). Based on description of commit 1389d9d "reflog expire --fix-stale" which introduced this option. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent c9bf7be commit cb877cd

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

Documentation/git-reflog.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,19 @@ the current branch. It is basically an alias for 'git log -g --abbrev-commit
3939
OPTIONS
4040
-------
4141

42+
--stale-fix::
43+
This revamps the logic -- the definition of "broken commit"
44+
becomes: a commit that is not reachable from any of the refs and
45+
there is a missing object among the commit, tree, or blob
46+
objects reachable from it that is not reachable from any of the
47+
refs.
48+
+
49+
This computation involves traversing all the reachable objects, i.e. it
50+
has the same cost as 'git prune'. Fortunately, once this is run, we
51+
should not have to ever worry about missing objects, because the current
52+
prune and pack-objects know about reflogs and protect objects referred by
53+
them.
54+
4255
--expire=<time>::
4356
Entries older than this time are pruned. Without the
4457
option it is taken from configuration `gc.reflogExpire`,

0 commit comments

Comments
 (0)