Re: Reset by checkout?
- From
Kevin Bracey <kevin@bracey.fi>
- Date
- May 31, 2014, 07:27 UTC
- Message-ID
- <53898448.8040105@bracey.fi>
- In-Reply-To
- <20140531144610.754B.B013761@chejz.com>
On 31/05/2014 08:46, Atsushi Nakagawa wrote:
> `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.q
I'm 100% in agreement. "Reset current branch to X" is an extremely common operation, and I use this all the time. But having to actually name the current branch is silly, and like you, I'm prone to swapping the parameters.
I guess in theory using "checkout" allows fancier extra options like "--merge" and "--patch", but I don't think I've ever used those with checkout, let alone this mode, where I really do just want a "reset", with safety checks.
The original "git reset --hard" used to be a pretty top-level command. It was used for aborting merges in particular. But I think it now stands out as being one of the only really dangerous porcelain commands, and I can't think of any real workflow it's still useful for. Maybe it could now be modified to warn and require "-f" to overwrite anything in the working tree?
While digging into this, it seems "git reset --keep" is actually pretty close to "git checkout -B <current branch>". It certainly won't lose your workspace file, but unlike checkout it /does /forget what you've staged, which could be annoying. Maybe that could be modified to keep the index too?
(I like your alias.become - might try that).
Kevin