Re: dangling blob which is not dangling at all
- From
Steven Grimm <koreth@midwinter.com>
- Date
- Aug 1, 2007, 08:35 UTC
- Message-ID
- <46B045D3.4070208@midwinter.com>
- In-Reply-To
- <20070801074237.GA14790@raptus.dandreoli.com>
Domenico Andreoli wrote:
> What is this reflog thing and why is required? >
It is a log of where each ref pointed at any given time. Or rather, a log of changes to refs, with timestamps. It is not *required* per se (you can turn it off and almost all of git will continue to work as before) but it's handy in that you can say stuff like
git checkout -b newbranch master@"{4 days ago}"and git will give you a new branch pointing at the rev that master pointed to 4 days ago, even if it's a rev that is no longer reachable from any of the existing heads (e.g., because you did a "git rebase" and the rev in question was replaced by a new one.) Obviously as soon as you do a "git gc" you will lose the ability to go back to unreachable revs using the reflog.
I primarily use the reflog to undo rebase operations. Not that I need to do that very often, but it's occasionally handy, e.g., if there was a conflict and I made a mistake while resolving it.
-Steve