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).


To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to