git clone
和git checkout
有什么区别?
checkout 的 man 手册:http://git-scm.com/docs/git-checkout
clone 的 man 手册:http://git-scm.com/docs/git-clone
简而言之,clone 用于获取你没有的代码库,checkout 用于在你已经拥有的代码库中切换分支。
注意:对于那些具有 SVN/CVS 背景并且刚接触 Git 的人,git clone
在 SVN/CVS 中等价于 checkout
。这种相同概念不同术语的说法常常令人困惑。
git clone 是从远程 git 服务器获取你的代码仓库。
git checkout 是检出你想要的代码仓库状态(如分支或特定文件)。
例如,你当前在主分支上,想要切换到开发分支。
git checkout develop_branch
比如说,你想将代码库中某个文件的状态切换到特定的版本
git checkout commit_point_A -- <filename>
这里有一个很好的参考资料可以帮助您学习Git,让您更容易理解。
git clone
也可用于本地仓库。 - SET001需要注意的一点是,在Git中没有任何“Copyout”的概念。这是因为你已经在本地仓库中拥有了一个完整的副本 - 你的本地仓库是你选择的上游仓库的克隆。所以你实际上拥有一个个人的检出,而不必在参考仓库中的那些文件上加锁。
Git提供SHA1哈希值作为验证文件/目录树/提交/仓库的副本是否与能够在信任层次结构中宣布“Master”的人使用的副本完全相同的机制。这避免了所有那些导致大多数版本控制系统崩溃(例如私有副本、大规模合并以及源代码缺乏真正的控制和管理)的“锁”问题。
简单来说,git checkout 有两个用途:
git checkout <existing_local_branch_name>
git checkout -b <new_feature_branch_name>
将创建一个包含 master 内容的新分支,并切换到新创建的分支。您可以在官方网站上找到更多选项。
-b
选项很棒,可以在单个命令中创建一个新的本地分支并将其检出。太喜欢它了! - RBTcheckout
可用于以下多种情况:
第一种情况:在本地代码库中切换分支
例如:
git checkout 存在的要切换的分支
您也可以通过使用-b
在此情况下创建并切换到新分支
git checkout -b 要切换到的新分支
第二种情况:从x版本恢复文件
git checkout 版本号 要恢复的文件
...