Comment by lalaithion
Comment by lalaithion 2 days ago
None of these seem to preclude a command to make an arbitrary branch point to an arbitrary commit without changing anything else.
Comment by lalaithion 2 days ago
None of these seem to preclude a command to make an arbitrary branch point to an arbitrary commit without changing anything else.
Wouldn't the fail or break under any circumstance where they don't immediately share a history?
> but not if it's checked out
...and for a good reason that should be apparent to anyone who understands git's model (HEAD points to a ref in this case, so if you suddenly change what that ref points to without updating the working tree you create an inconsistency).
You can do that manually of course (with `git update-ref` or even a text editor), but then you get to clean up the mess yourself.
Do you react the same way when an OS prevents you from writing to a file with an exclusive lock placed on it? So much for "a file is simply a collection of data stored as a single object"...
If a git repo was purely a collection of meaningless pointers and graph nodes, git would be a graph manipulation utility, not a version control system. The fact that some of those pointers have a meaning is what makes it useful and it doesn't contradict the fact that what you're working on is still just a bunch of pointers and nodes.
Theoretically it could, but that would be a rather surprising side effect. You could also check the new revision out and leave HEAD intact. Which one of those outcomes you would expect and why?
"error: ref in use by higher layers" makes much more sense to me in this case.
You are looking for