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

4 messages from 2025-05-19 to 2025-05-19. Participants: Josh Bleecher Snyder, brian m. carlson, Junio C Hamano.
Thread: https://gitlist.dev/t/63482

## Josh Bleecher Snyder, 2025-05-19 19:45

Subject: Feature request: make reset --hard add something to the reflog
Message-ID: <CAFAcib_PV4EB-i4PUmTxCx_6LX=8aWDNT_ZPrN0-EDsRwRfi4g@mail.gmail.com>
URL: https://gitlist.dev/e/CAFAcib_PV4EB-i4PUmTxCx_6LX%3D8aWDNT_ZPrN0-EDsRwRfi4g%40mail.gmail.com

```
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, 2025-05-19 19:55

Subject: Re: Feature request: make reset --hard add something to the reflog
Message-ID: <aCuMshOaqcuwMCpG@tapette.crustytoothpaste.net>
URL: https://gitlist.dev/e/aCuMshOaqcuwMCpG%40tapette.crustytoothpaste.net
In-Reply-To: <CAFAcib_PV4EB-i4PUmTxCx_6LX=8aWDNT_ZPrN0-EDsRwRfi4g@mail.gmail.com>

```
On 2025-05-19 at 19:45:21, Josh Bleecher Snyder wrote:
> 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, 2025-05-19 21:28

Subject: Re: Feature request: make reset --hard add something to the reflog
Message-ID: <xmqqjz6cmgt4.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqqjz6cmgt4.fsf%40gitster.g
In-Reply-To: <aCuMshOaqcuwMCpG@tapette.crustytoothpaste.net>

```
"brian m. carlson" <sandals@crustytoothpaste.net> writes:

> 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, 2025-05-19 21:35

Subject: Re: Feature request: make reset --hard add something to the reflog
Message-ID: <aCukFlfmQcxRSqGz@tapette.crustytoothpaste.net>
URL: https://gitlist.dev/e/aCukFlfmQcxRSqGz%40tapette.crustytoothpaste.net
In-Reply-To: <xmqqjz6cmgt4.fsf@gitster.g>

```
On 2025-05-19 at 21:28:07, Junio C Hamano wrote:
> 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

```
