git clone和git checkout有什么区别?
当前回答
Git克隆是从远程Git服务器获取你的存储库。
Git签出是为了签出存储库的理想状态(如分支或特定文件)。
例如,你目前在主分支上,你想切换到开发分支。
git checkout develop_branch
例如,您想签出到特定文件的特定状态
git checkout commit_point_A -- <filename>
这里是一个很好的参考你学习Git,让你更容易理解。
其他回答
需要注意的一点是git中没有任何“Copyout”。这是因为你已经在你的本地回购中有一个完整的副本-你的本地回购是你所选择的上游回购的克隆。因此,您可以有效地对所有内容进行个人签出,而无需在参考回购中对这些文件进行一些“锁定”。
Git提供了SHA1哈希值作为一种机制,用于验证您拥有的文件/目录树/提交/回购的副本与能够在信任层次结构中将事物声明为“Master”的人所使用的副本完全相同。这避免了所有那些导致大多数SCM系统阻塞的“锁”(常见的问题包括私有副本、大合并以及没有对源代码的真正控制或管理;-)!
Checkout可用于多种情况:
第一种情况:在本地存储库中的分支之间切换 例如: Git签出exists_branch_to_switch
在本例中,您还可以使用-b创建新的分支并切换
Git checkout -b new_branch_to_switch
第二种情况:从x rev恢复文件
Git校验rev file_to_restore ...
简单的git checkout有2个用途
在现有的本地分支之间切换,如git checkout <existing_local_branch_name> 使用flag -b从当前分支创建一个新分支。假设你在主分支,那么git checkout -b <new_feature_branch_name>将创建一个包含主分支内容的新分支,并切换到新创建的分支
你可以在官方网站上找到更多的选择
Git克隆是从远程Git服务器获取你的存储库。
Git签出是为了签出存储库的理想状态(如分支或特定文件)。
例如,你目前在主分支上,你想切换到开发分支。
git checkout develop_branch
例如,您想签出到特定文件的特定状态
git checkout commit_point_A -- <filename>
这里是一个很好的参考你学习Git,让你更容易理解。
结帐的手册页:http://git-scm.com/docs/git-checkout
clone的手册页:http://git-scm.com/docs/git-clone
总而言之,克隆是用于获取您没有的存储库,签出是用于在您已经拥有的存储库中的分支之间切换。
注意:对于那些有SVN/CVS背景和刚接触Git的人来说,在SVN/CVS中等价于Git克隆的是checkout。不同术语的相同措辞常常令人困惑。
推荐文章
- 在单个文件中重新启动/撤消冲突解决方案
- Visual Studio代码如何解决合并冲突与git?
- 无法推送到远程分支,无法解析到分支
- Git:如何将数据库重置为特定的提交?
- 如何在合并期间使用Git和命令行保存本地文件或远程文件?
- 能够用一个命令推到所有git遥控器?
- 重新基于Git合并提交
- 忽略已经签入目录的内容?
- 如何从windows cmd保存git提交消息?
- (Mac) -bash: __git_ps1:命令未找到
- 如何删除多个已删除的文件在Git仓库
- 使用vimdiff查看所有' git diff '
- 如何拉特定的目录与git
- 本地存储库中的文件与源文件之间的差异
- 将Git存储库内容移动到另一个存储库,保存历史记录