2011-06-30 57 views
10

我的git的日志显示的东西如:如何从git log中检出git中的特定版本?

enter code here 
[git_trial]$ git log 
commit 4c5bc66ae50780cf8dcaf032da98422aea6e2cf7 
Author: king <[email protected]> 
Date: Thu Jun 30 15:09:55 2011 +0530 


This is third commit 

commit 8072be67ddd310bc200cab0dccb8bcb2ec4f922c 

Author: king <[email protected]> 

Date: Thu Jun 30 14:17:27 2011 +0530 

This is the second commit 

commit 3ba6ce43d500b12f64368b2c27f35211cf189b68 

Author: king <[email protected]> 

Date: Thu Jun 30 14:00:01 2011 +0530 


This is the first git commit for file1 

问题1)现在怎么只检出我的第一个版本? 问题2)另外当我这样做,git仅登录File1,为什么它只显示第一次提交?

[git_trial]$ git checkout 3ba6ce43d500b12f64368b2c27f35211cf189b68 
Note: moving to "3ba6ce43d500b12f64368b2c27f35211cf189b68" which isn't a local branch 
If you want to create a new branch from this checkout, you may do so 
(now or later) by using -b with the checkout command again. Example: 

    git checkout -b <new_branch_name> 


    [git_trial]$ git log File1 

    commit 3ba6ce43d500b12f64368b2c27f35211cf189b68 

    Author: king <[email protected]> 
    Date: Thu Jun 30 14:00:01 2011 +0530 

    This is the first git commit for file1 

回答

28

您可以使用您已有的git checkout sha-of-commit签出提交。

但是你不能提交任何东西(因为你不在分支中,你在静态提交中)。

如果您需要在该提交之上提交任何内容,则需要使用git checkout sha-of-commit -b testing-a-commit将其签出到分支中。

git log <file>只显示影响该文件的提交。

+0

对不起,迟到的响应..网络太慢了。所以你的意思是,如果我创建一个分支,然后做我的第一次和连续的提交,那么我可以签出任何特定的版本? – kingsmasher1

+0

什么是提交sha? – kingsmasher1

+0

@ kingshasher1,sha = SHA1散列,如'3ba6ce43d500b12f64368b2c27f35211cf189b68'。 – Dogbert