git clone和git checkout有什么区别?
结帐的手册页:http://git-scm.com/docs/git-checkout
clone的手册页:http://git-scm.com/docs/git-clone
总而言之,克隆是用于获取您没有的存储库,签出是用于在您已经拥有的存储库中的分支之间切换。
注意:对于那些有SVN/CVS背景和刚接触Git的人来说,在SVN/CVS中等价于Git克隆的是checkout。不同术语的相同措辞常常令人困惑。
Git克隆是从远程Git服务器获取你的存储库。
Git签出是为了签出存储库的理想状态(如分支或特定文件)。
例如,你目前在主分支上,你想切换到开发分支。
git checkout develop_branch
例如,您想签出到特定文件的特定状态
git checkout commit_point_A -- <filename>
这里是一个很好的参考你学习Git,让你更容易理解。
需要注意的一点是git中没有任何“Copyout”。这是因为你已经在你的本地回购中有一个完整的副本-你的本地回购是你所选择的上游回购的克隆。因此,您可以有效地对所有内容进行个人签出,而无需在参考回购中对这些文件进行一些“锁定”。
Git提供了SHA1哈希值作为一种机制,用于验证您拥有的文件/目录树/提交/回购的副本与能够在信任层次结构中将事物声明为“Master”的人所使用的副本完全相同。这避免了所有那些导致大多数SCM系统阻塞的“锁”(常见的问题包括私有副本、大合并以及没有对源代码的真正控制或管理;-)!
简单的git checkout有2个用途
在现有的本地分支之间切换,如git checkout <existing_local_branch_name> 使用flag -b从当前分支创建一个新分支。假设你在主分支,那么git checkout -b <new_feature_branch_name>将创建一个包含主分支内容的新分支,并切换到新创建的分支
你可以在官方网站上找到更多的选择
Checkout可用于多种情况:
第一种情况:在本地存储库中的分支之间切换 例如: Git签出exists_branch_to_switch
在本例中,您还可以使用-b创建新的分支并切换
Git checkout -b new_branch_to_switch
第二种情况:从x rev恢复文件
Git校验rev file_to_restore ...
推荐文章
- Visual Studio Code: .git文件夹/文件隐藏
- “node_modules”文件夹应该包含在git存储库中吗
- 为什么git-rebase给了我合并冲突,而我所做的只是压缩提交?
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 如何从远程分支中挑选?
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?
- 跟踪所有远程git分支作为本地分支