简体   繁体   中英

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 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM