jesseduffield / lazygit

simple terminal UI for git commands
MIT License
52.95k stars 1.85k forks source link

When local branch diverges from the remote and you're about to force push, the warning should prompt the user enter some text instead of just pressing enter. #3468

Open iltenahmet opened 7 months ago

iltenahmet commented 7 months ago

Is your feature request related to a problem? Please describe. When the local branch has diverged from the remote and you're about to force push, there is a super useful warning that says your branch has diverged from the remote branch, Press <esc> to cancel, or <enter> to force push. Unfortunately, I ended up pressing enter out of habit too many times because it's just muscle memory at this point. We could avoid so many accidental force pushes if we had prompted to user the enter a word instead.

Describe the solution you'd like The pop-up could be changed as your branch has diverged from the remote branch, Press <esc> to cancel, or type "force" to force push. It can be another word, or it could be something else that prevents the user from just pressing enter out of habit.

Additional context Many large projects employ this tactic because it's too easy to press buttons without reading what they do. For example, when you're changing the visibility of a repo on Github, they ask you to type the name of the repo in addition to the warning pop-up. This ensures people don't just press enter out of habit without even reading what the pop-up says.

belyakov-am commented 7 months ago

This looks useful to me too. And I would also consider changing pop-up for discard action in the same way.

However, I would prefer having a config options for each action (forse push, discard, etc) and enabling/disabling them separately.

AndrewSav commented 7 months ago

https://github.com/jesseduffield/lazygit/issues/2009 IMO this should be configurable, if someone prefers to force push fast, they should be able to do so, but those who wants extra safety should also have that option.

simondoesstuff commented 7 months ago

🙏 Just did an inadvertent force push resulting in 2 weeks of a collaborator's deleted work and 3 hours finding the dangling commits to recover.

iltenahmet commented 7 months ago

@simondoesstuff this is exactly why I opened this issue. Based on the discussion on #2009, we are not the first ones to force push by mistake and lose hard-to-recover work. The potentially dire consequences of accidental force pushes are far greater than the benefits of being able to force push fast.

I agree that it should be configurable, but it makes sense to have the safer option as the default, especially because I think most people will not go through the extra step of configuring this until they make an inadvertent force push.

socketbox commented 5 months ago

Has the --force-with-lease flag been taken into consideration in this discussion?