threads / discuss / 63482

Feature request: make reset --hard add something to the reflog

Subject: Feature request: make reset --hard add something to the reflog

## tl;dr

4 messages between May 19, 2025 and May 19, 2025.

replies: 3people: 3as markdown or json

Josh Bleecher Snyder· May 19, 2025, 19:45 UTC · lore
Hi!
A feature request:

I git reset --hard a lot. Every once in a while, it hurts, just infrequently enough that I forget the pain and do it again.

I wish that git reset --hard would silently stash, add to reflog, stash drop (or the moral equivalent) and then do the reset. That way I could always recover my state post-facto.

Thanks, Josh

brian m. carlson· May 19, 2025, 19:55 UTC · re: Josh Bleecher Snyder · lore

Re: Feature request: make reset --hard add something to the reflog

On 2025-05-19 at 19:45:21, Josh Bleecher Snyder wrote:
Show 10 quoted lines
> Hi!
> 
> A feature request:
> 
> I git reset --hard a lot. Every once in a while, it hurts, just
> infrequently enough that I forget the pain and do it again.
> 
> I wish that git reset --hard would silently stash, add to reflog,
> stash drop (or the moral equivalent) and then do the reset. That way I
> could always recover my state post-facto.

I don't know if we want this by default (although I could be convinced that we do), but I think this would actually be a great feature to add via a config option. You are not the only person who has accidentally destroyed data with `git reset --hard` by any stretch of the imagination[0] and this would make that much less painful.

I'm not going to commit to implementing it (although I might do so at some point), but if someone else (or you) wants to do so, I'm sure it would be quite welcome.

[0] I've been contributing to Git for at least seven years and I still occasionally lose data (temporarily or permanently) this way.

-- 
brian m. carlson (they/them)
Toronto, Ontario, CA
Junio C Hamano· May 19, 2025, 21:28 UTC · re: brian m. carlson · lore

Re: Feature request: make reset --hard add something to the reflog

"brian m. carlson" <sandals@crustytoothpaste.net> writes:
Show 5 quoted lines
> I don't know if we want this by default (although I could be convinced
> that we do), but I think this would actually be a great feature to add
> via a config option.  You are not the only person who has accidentally
> destroyed data with `git reset --hard` by any stretch of the
> imagination[0] and this would make that much less painful.

I do not offhand have a strong objection for the _feature_, but if the implementation uses the default "stash", that is a bit worrysome, as anybody, even a script, using "reset --hard" would add a new stash entry, shifting the end-user's expectation of what the Nth stash entry records behind user's back.

Doesn't "reset --hard" add record to the reflog already, by the way? I agree that a way to recover the local modifications that "reset --hard" is designed to get rid of is a good addition. I just do not know what the best vehicle to store the local modifications is.

brian m. carlson· May 19, 2025, 21:35 UTC · re: Junio C Hamano · lore

Re: Feature request: make reset --hard add something to the reflog

On 2025-05-19 at 21:28:07, Junio C Hamano wrote:
Show 5 quoted lines
> I do not offhand have a strong objection for the _feature_, but if
> the implementation uses the default "stash", that is a bit
> worrysome, as anybody, even a script, using "reset --hard" would add
> a new stash entry, shifting the end-user's expectation of what the
> Nth stash entry records behind user's back.

Yes, this would need to live under a different ref. We could use the same stash machinery, though, with a small refactor.

> Doesn't "reset --hard" add record to the reflog already, by the way?
> I agree that a way to recover the local modifications that "reset
> --hard" is designed to get rid of is a good addition.  I just do not
> know what the best vehicle to store the local modifications is.

It does, at least when it changes HEAD. But it doesn't preserve the local modifications anywhere, which is really the request that's being made.

-- 
brian m. carlson (they/them)
Toronto, Ontario, CA

← back to recent threads