On Thu, Jan 31, 2019 at 8:37 PM SZEDER Gábor <szeder.dev@xxxxxxxxx> wrote: > > On Wed, Jan 30, 2019 at 04:48:12PM +0700, Nguyễn Thái Ngọc Duy wrote: > > The > > only one left is adding options similar to "git reset" (but with > > better names this time than --soft and --hard, hopefully). > > Oh no, what for?! As the commit message or patch 19/19 'doc: promote > "git switch"' states: > > The new command "git switch" is added to avoid the confusion of > one-command-do-all "git checkout" for new users. > > Adding '--soft|--hard' from 'git reset' would go in the opposite > direction. If it's about the confusion, I think we can avoid it. If it's about the one-command-do-all, I think it still fits in the main topic of git-switch, which is about switching. But in git-reset case it's switching HEAD, not a normal branch. What I have in mind so far is this, let's see if it's so bad so I can find another direction. git switch --reset-branch [--keep-index] [--keep-worktree] [<commit>] This updates worktree and index to <commit> and "rewinds" the current branch to <commit>. If either of those --keep-* is given, that part will be left untouched. So "git reset --hard" is the same as "git switch --reset-branch", --soft "--reset-branch --keep-index --keep-worktree" and --mixed "--reset-branch --keep-worktree". I've been updating docs with this new format to see what it looks like and I think it expresses the idea behind git-reset much better. -- Duy