Git how to checkout a commit of a branch

How can I check out a commit version of a branch in git?

For example, my branch, Dev, has a commit ad4f43af43e. How can I check out that commit? Not just a single file, but a whole branch.

I searched online and found: git checkout <commit>, but it didn't specify branch name


git checkout <hash>         # non named commit
git checkout <branch_name>  # named commit

The two lines above will place the HEAD pointer on the given commit. You should know that a branch name is a commit, except it can evolve if a new commit is added when you're on that branch.

If you want to place your branch Dev on the commit ad4f43af43e you can do this

git branch -f Dev ad4f43af43e

Be careful! This is dangerous because you may lose commits.


If you're looking to branch out from a specific commit of a branch, first be sure you are in the branch,

git checkout dev

Now I want to checkout a specific commit 123654 from the dev branch to a new branch while keeping the head on main branch.

git checkout -b new-branch 123654

You can checkout to the commit-sha then, create a new branch (say, feature) from that commit.

$ git checkout <commit>
$ git checkout -b feature    # create a new branch named `feature` from the commit


# if you want to replace the current branch (say 'develop') with new created branch ('feature') 
$ git branch -D develop     # delete the local 'develop' branch
$ git checkout -b develop   # create a new 'develop' branch from 'feature' branch