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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html