On Tue, Aug 27, 2019 at 09:53:30AM +0000, Vipul wrote: > 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