2017-02-10 116 views
0

如何检出分支的提交版本git。例如,我的分支Dev有一个提交ad4f43af43e。我怎样才能检查出提交?不只是一个文件,而是整个分支。我在网上搜索,发现:git checkout <commit>,但它没有指定分支名称Git如何结帐分支提交

谢谢。

+2

分支只是一个指向提交的指针。通过SHA1检出提交,然后直接将HEAD指向该提交。我建议你阅读https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell – rom1v

回答

0

您可以将checkout改为commit-sha然后,从该提交中创建一个新分支(例如feature)。

$ 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 
+0

,当你说创建分支'功能',分支是在远程或本地? – user1615666

+0

@ user1615666:* all * Git分支是本地的。 (即使你的“远程追踪分支”,比如'origin/master',实际上也是本地的!当你运行'git fetch'时,它们会自动*更新*以匹配'origin'。把'fetch'想象为“Tell我的Git通过互联网电话调用另一个Git,并获得其他Git为我的Git所做的任何更新。“同时'git push'是”让我的Git调用其他Git,而不是*获取*东西,*给他们的东西,并要求他们更新他们的分支。“) – torek

0

如果你正在寻找从一个特定的分支出来犯的一个分支,首先要确定你是在分支,

git checkout dev 

现在我想签一个特定的从呈交123654 dev分支到一个新的分支,同时保持头部在主分支上。

git checkout -b new-branch 123654 
0
git checkout <hash> # non named commit 
git checkout <branch_name> # named commit 

两行以上将放置在给定的提交头指针。您应该知道分支名称是一个提交,除非您在该分支上添加新的提交时它可能会发展。

如果要放置您分支Dev在提交ad4f43af43e你可以做到这一点

git branch -f Dev ad4f43af43e 

Becareful!这很危险,因为你可能会丢失提交