Re: Support for an interactive confirmation prompt when users can possibly lose their work like some UNIX commands
- From
Jeff King <peff@peff.net>
- Date
- Aug 27, 2019, 19:05 UTC
- Message-ID
- <20190827190509.GB3150@sigill.intra.peff.net>
- In-Reply-To
- <c1136131-0a9e-9dbb-3ad7-495ac96c1ef0@disroot.org>
On Tue, Aug 27, 2019 at 09:53:30AM +0000, Vipul wrote:
Show 10 quoted lines
> Sometimes, I messed-up with git repository and lost works due > carelessness. This includes reset a branch instead of other, drop the > stash etc by mistake. I wonder, is there way to a get an interactive > confirmation prompt (which ask for yes/no option) before executing those > commands when users can possibly lose their work? Like, some UNIX > commands have support for an interactive prompt (like 'rm -i', 'mv -i', > 'cp -i', etc) for ex: before deleting and overwriting a file a > confirmation is prompt and asking for users permission. > If there would no such feature available in git, so how do other people > avoid these kind of mistakes?
The usual philosophy in Git is not to bother the user with confirmations, but to allow recovery after a mistake.
If you've moved a branch pointer around (e.g., via "git branch -f" or "git reset"), you can recover it from the reflog.
In the case of a mistakenly dropped stash, there's no reflog (the stash list itself is implemented as a reflog!), but you can use "git fsck" to generate a list of "dangling" commits. These are commits which are unreferenced, but they hang around until at least the next git-gc run.
Note that there _are_ some commands which are not reversible: mostly things that drop content from the working tree. So "git reset --hard" is one, and "git clean" is another. There have been discussions and even some patches about storing the lost in an "undo log", but nothing has been merged.
-Peff