Open iltenahmet opened 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.
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.
🙏 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.
@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.
Has the --force-with-lease
flag been taken into consideration in this discussion?
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 pressingenter
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 pressingenter
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.