I read on here and searched a lot but didn\'t find the answer, so Is there a way to switch between commits like you do with branches.Let\'s say I have these commits: a
Just type git checkout a
. Or perhaps more usefully, git checkout -b mybranch a
, to checkout a
as a new branch mybranch
.
If you want to revert b
and c
, you can use git revert
, or to remove them entirely from your current branch's history, you could git rebase -i a
and throw them out.
Even if you were going to use git diff
, you wouldn't have to do anything manually. Check out git format-patch
, git apply
, and git am
to automate creating and applying patches.
You can create a branch from the revision you want to work from. The revision number can be seen using
git log
Branch out from the previous revision
git branch -f branchname rev
git uses the definition of a commitish. git defines a commitish as:
commit-ish
Indicates a commit or tag object name. A command that takes a commit-ish argument ultimately wants to operate on a commit object but automatically dereferences tag objects that point at a commit.
This seems slightly incomplete as branches are also often treated as commit-ish.
Basically, you can checkout anything that has a sha-1 hash.