# Question: is there a possibility of getting a warning before a git push -f

5 messages from 2025-06-09 to 2025-06-12. Participants: Aditya Garg, Junio C Hamano, D. Ben Knoble.
Thread: https://gitlist.dev/t/63609

## Aditya Garg, 2025-06-09 16:46

Subject: Question: is there a possibility of getting a warning before a git push -f
Message-ID: <PN0PR01MB95880EAA98466C9AB049BA44B86BA@PN0PR01MB9588.INDPRD01.PROD.OUTLOOK.COM>
URL: https://gitlist.dev/e/PN0PR01MB95880EAA98466C9AB049BA44B86BA%40PN0PR01MB9588.INDPRD01.PROD.OUTLOOK.COM

```
One thing I sometimes encounter is that I sometimes git push -f and moments later I realise I did it at the wrong time, result being a disaster. I was wondering if a little [y/N] warning could be possible before the risky command gets executed. I saw the code for push superficially and I don't think it's implemented. I think it would be a nice feature though.

```

## Junio C Hamano, 2025-06-09 18:42

Subject: Re: Question: is there a possibility of getting a warning before a git push -f
Message-ID: <xmqqldq0rc3b.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqqldq0rc3b.fsf%40gitster.g
In-Reply-To: <PN0PR01MB95880EAA98466C9AB049BA44B86BA@PN0PR01MB9588.INDPRD01.PROD.OUTLOOK.COM>

```
Aditya Garg <gargaditya08@live.com> writes:

> One thing I sometimes encounter is that I sometimes git push -f and
> moments later I realise I did it at the wrong time, result being a
> disaster. I was wondering if a little [y/N] warning could be possible
> before the risky command gets executed. I saw the code for push
> superficially and I don't think it's implemented. I think it would be
> a nice feature though.

I suspect that an even nicer feature that is more generally
applicable is a patch to your shell to make any command you give it
is not run for a few seconds to give you a chance to kill it with
^C.  You do not want to run around castrating a bunch of commands
and features like "git push", "rm", ">overwrite-with-redirect", and
all the other "destructive" things you may regret doing.  There are
literally too many.

Quite honestly, "-f" or "--force" should be a hint enough that the
user wants the command to do what the command usually does not allow
them to do to avoid potentially dangerous operations.

I would expect that many people will truly get annoyed when "git
anycommand --force" starts asking "That's very dangerous---are you
sure?" for confirmations, and would complain "Yes, otherwise I
wouldn't be giving you '--force'---just do it as I told you".

```

## Aditya Garg, 2025-06-09 18:44

Subject: Re: Question: is there a possibility of getting a warning before a git push -f
Message-ID: <PN3PR01MB9597D5059F9C9E0FCF442CB0B86BA@PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM>
URL: https://gitlist.dev/e/PN3PR01MB9597D5059F9C9E0FCF442CB0B86BA%40PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM
In-Reply-To: <xmqqldq0rc3b.fsf@gitster.g>

```


> On 10 Jun 2025, at 12:12 AM, Junio C Hamano <gitster@pobox.com> wrote:
> 
> ﻿Aditya Garg <gargaditya08@live.com> writes:
> 
>> One thing I sometimes encounter is that I sometimes git push -f and
>> moments later I realise I did it at the wrong time, result being a
>> disaster. I was wondering if a little [y/N] warning could be possible
>> before the risky command gets executed. I saw the code for push
>> superficially and I don't think it's implemented. I think it would be
>> a nice feature though.
> 
> I suspect that an even nicer feature that is more generally
> applicable is a patch to your shell to make any command you give it
> is not run for a few seconds to give you a chance to kill it with
> ^C.  You do not want to run around castrating a bunch of commands
> and features like "git push", "rm", ">overwrite-with-redirect", and
> all the other "destructive" things you may regret doing.  There are
> literally too many.
> 
> Quite honestly, "-f" or "--force" should be a hint enough that the
> user wants the command to do what the command usually does not allow
> them to do to avoid potentially dangerous operations.
> 
> I would expect that many people will truly get annoyed when "git
> anycommand --force" starts asking "That's very dangerous---are you
> sure?" for confirmations, and would complain "Yes, otherwise I
> wouldn't be giving you '--force'---just do it as I told you".

Fair
```

## D. Ben Knoble, 2025-06-11 23:18

Subject: Re: Question: is there a possibility of getting a warning before a git push -f
Message-ID: <CALnO6CA-SvasocZ_tbN2_-DiGCO55W6gyXDjJZqRo5Y3D4JRmg@mail.gmail.com>
URL: https://gitlist.dev/e/CALnO6CA-SvasocZ_tbN2_-DiGCO55W6gyXDjJZqRo5Y3D4JRmg%40mail.gmail.com
In-Reply-To: <PN0PR01MB95880EAA98466C9AB049BA44B86BA@PN0PR01MB9588.INDPRD01.PROD.OUTLOOK.COM>

```
> Le 9 juin 2025 à 12:47, Aditya Garg <gargaditya08@live.com> a écrit :
>
> ﻿One thing I sometimes encounter is that I sometimes git push -f and moments later I realise I did it at the wrong time, result being a disaster.

2 effective habits I like:
- Check what I’m pushing first.
- Only force when absolutely needed, and even then default to a
“strict” version (force-with-lease *and* force-if-includes; I use an
alias “pf” and some config to make it easy, since I do force-push
regularly in a rebase-heavy workflow).

Expanding a bit:

I have a “git-div” script that will show me the graph in the way I
like between HEAD and @{push}, or @{upstream} if those are the same
revision [it accepts arbitrary revisions though]. It was mostly
inspired by mjd’s git-vee, and uses lots of annotations (cherry-mark,
left-right, boundary) to give a quick HUD.

https://github.com/benknoble/Dotfiles/blob/master/links/bin/git-div

(“graph” is an alias for git-log with the graph and oneline options)

I also use(d to) use show-branch a lot, and I have aliases sbu =
show-branch HEAD @{upstream} and sbup = sbu @{push} that I still use
sometimes.

As I recently told some colleagues, I consider regularly reviewing
where in the commit graph I am equally as important as checking
git-status.

The second bullet is probably self-explanatory, but the basic idea is
to give myself the most protection I can, and only weaken it as
necessary. In fact, I almost never need to remove any of those
“strict” flags to force-push except when I’m intentionally
force-pushing from a detached HEAD
(https://lore.kernel.org/git/CALnO6CCk0SgwObQRnpd5Pt_DvCKF8dBmyVHivU6Nr_O-GusGLA@mail.gmail.com/).


> I was wondering if a little [y/N] warning could be possible before the risky command gets executed. I saw the code for push superficially and I don't think it's implemented. I think it would be a nice feature though.

```

## Aditya Garg, 2025-06-12 11:49

Subject: Re: Question: is there a possibility of getting a warning before a git push -f
Message-ID: <PN3PR01MB959737A5CCD375854E0E9385B874A@PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM>
URL: https://gitlist.dev/e/PN3PR01MB959737A5CCD375854E0E9385B874A%40PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM
In-Reply-To: <CALnO6CA-SvasocZ_tbN2_-DiGCO55W6gyXDjJZqRo5Y3D4JRmg@mail.gmail.com>

```


On 12/06/25 4:48 am, D. Ben Knoble wrote:
>> Le 9 juin 2025 à 12:47, Aditya Garg <gargaditya08@live.com> a écrit :
>>
>> ﻿One thing I sometimes encounter is that I sometimes git push -f and moments later I realise I did it at the wrong time, result being a disaster.
> 
> 2 effective habits I like:
> - Check what I’m pushing first.
> - Only force when absolutely needed, and even then default to a
> “strict” version (force-with-lease *and* force-if-includes; I use an
> alias “pf” and some config to make it easy, since I do force-push
> regularly in a rebase-heavy workflow).
> 
> Expanding a bit:
> 
> I have a “git-div” script that will show me the graph in the way I
> like between HEAD and @{push}, or @{upstream} if those are the same
> revision [it accepts arbitrary revisions though]. It was mostly
> inspired by mjd’s git-vee, and uses lots of annotations (cherry-mark,
> left-right, boundary) to give a quick HUD.
> 
> https://github.com/benknoble/Dotfiles/blob/master/links/bin/git-div

Ah nice, I was searching for something similar.
> 
> (“graph” is an alias for git-log with the graph and oneline options)
> 
> I also use(d to) use show-branch a lot, and I have aliases sbu =
> show-branch HEAD @{upstream} and sbup = sbu @{push} that I still use
> sometimes.
> 
> As I recently told some colleagues, I consider regularly reviewing
> where in the commit graph I am equally as important as checking
> git-status.
> 
> The second bullet is probably self-explanatory, but the basic idea is
> to give myself the most protection I can, and only weaken it as
> necessary. In fact, I almost never need to remove any of those
> “strict” flags to force-push except when I’m intentionally
> force-pushing from a detached HEAD
> (https://lore.kernel.org/git/CALnO6CCk0SgwObQRnpd5Pt_DvCKF8dBmyVHivU6Nr_O-GusGLA@mail.gmail.com/).
> 
> 
>> I was wondering if a little [y/N] warning could be possible before the risky command gets executed. I saw the code for push superficially and I don't think it's implemented. I think it would be a nice feature though.


```
