On August 19, 2019 5:41 AM, Ed Avis wrote: > To: git@xxxxxxxxxxxxxxx > Subject: git switch and restore user interface > > I think it would be helpful for git switch to print a reminder of the old and > new branches. > > Hi, a couple of suggestions for these experimental new commands. Git > switch should print the branch you are leaving: > > % git switch foo > You were previously on branch bar (abcdef). > You are now on branch foo (bcdef0). > > Sometimes I forget what branch I was on before and having it in the terminal > history would help a lot. > > > For git restore, it might be worth splitting the command further, into 'safe > restore' and 'destructive restore'. The safe command would always stop > rather than lose data: > > % git safe-restore . > The following local changes would be overwritten: > Fee.c > Foe.c > Stash them first, or (etc etc). > > The command that unconditionally overwrites working copy changes should > be given a different and more dangerous-sounding name. > > The reason I suggest this is to make sure of a sensible answer to the > newcomer's question: "I just deleted a file by mistake in my working copy, > how do I get it back from git?". Too often at the moment the answer is "git > checkout ." which while correct is also much too dangerous to be a first > resort. There should be an obvious and safe command for restoring missing > files without losing local changes. > > In fact, I'd be quite happy for it to be like git clean, which in the default > configuration requires some flag like -f to make it lose any local changes, > even though the very purpose of git clean is to delete files. I would be happier to have git restore --stash or some configuration option, like restore.stash=auto that has git automatically stash on a restore. But would the stash include everything or just the paths you are restoring? It might be nice to teach git clean the same option. Cheers, Randall