Reset by checkout?
- From
- Atsushi Nakagawa <atnak@chejz.com>
- Date
- May 31, 2014, 05:46 UTC
- Message-ID
- <20140531144610.754B.B013761@chejz.com>
Hi all,
One of the more underrepresented command I use in git use on a regular basis is this "reset by checkout". It's what's currently achieved by this convoluted expression:
`git checkout -B <current-branch-name> <tree-ish>`
This is such an useful notion that I can fathom why there isn't a better, first-tier, alternative. i.e. How come there's no 'git reset --checkout'? The command above even prints "Reset branch '<current-branch-name>'".
The problem with 'checkout -B' is it's so easy to mistype! If I had a yen for every time I accidentally left off the '<current-branch-name>' part and created a branch named "<tree-ish>" at HEAD...
So, I defined alias.become '!git checkout -B "$(git symbolic-ref --short HEAD)"' and was happy for a while. Now, the lack is glaring every time I'm explaining workflows to people who don't have the the alias.
Ok, the typical use case is: I'm on 'master' and I make a few test commits. Afterwards, I want to discard the commits and move back to 'origin/master'. I could type 'reset --hard origin/master' and risk blowing away dirty files if I'm not careful. Or, I could use "reset by checkout" and be carefree.
Any ideas? Am I doing something wrong or unconventional?
Cheers,
-- Atsushi Nakagawa <atnak@chejz.com> Changes are made when there is inconvenience.