git克隆和签出之间有什么区别?

git克隆和签出之间有什么区别?,git,command,Git,Command,git clone和git checkout之间有什么区别?签出手册页: 克隆的手册页: 总之,克隆用于获取您没有的存储库,签出用于在您已有的存储库中的分支之间切换 注意:对于那些拥有SVN/CVS背景且对Git不熟悉的人,SVN/CVS中的Git clone等效于checkout。不同术语的相同措辞常常令人困惑。git clone是从远程git服务器获取存储库 git checkout是检查存储库的所需状态(如分支或特定文件) 例如,您当前在主分支上,希望切换到开发分支 git checkou

git clone
git checkout
之间有什么区别?

签出手册页:

克隆的手册页:

总之,克隆用于获取您没有的存储库,签出用于在您已有的存储库中的分支之间切换


注意:对于那些拥有SVN/CVS背景且对Git不熟悉的人,SVN/CVS中的
Git clone
等效于
checkout
。不同术语的相同措辞常常令人困惑。

git clone是从远程git服务器获取存储库

git checkout是检查存储库的所需状态(如分支或特定文件)

例如,您当前在主分支上,希望切换到开发分支

git checkout develop_branch
例如,您希望签出到特定文件的特定状态

git checkout commit_point_A -- <filename>
git签出提交\u点\u A--

下面是一个供您学习Git的方法,它让您更容易理解。

需要注意的是,Git中没有任何“复制”。这是因为您的本地回购中已经有一份完整的副本-您的本地回购是所选上游回购的克隆。因此,您可以有效地对所有内容进行个人
签出
,而无需在参考回购中对这些文件进行“锁定”


Git提供SHA1散列值作为一种机制,用于验证您拥有的文件/目录树/commit/repo的副本是否与能够在信任层次结构中将事物声明为“Master”的人使用的副本完全相同。这避免了所有那些导致大多数SCM系统阻塞的“锁”(常见的问题是私有拷贝、大合并,以及对源代码没有真正的控制或管理;-)

简单的git签出有两种用途

  • 在现有本地分支之间切换,如
    git checkout
  • 使用标志-b从当前分支创建新分支。假设您在master分支,那么
    git checkout-b
    将使用master的内容创建一个新分支,并切换到新创建的分支

  • 您可以在

    结帐处找到更多选项
    可用于多种情况:

    第一种情况:在本地存储库中的分支之间切换 例如:
    
    git签出存在\u分支\u到\u开关
    

    您还可以使用
    -b

    
    git签出-b新建分支到交换机
    

    第二种情况:从x版本还原文件

    
    git签出版本文件\u到\u还原
    

    相关:
    checkout
    也可以用于其他事情,比如用另一个版本的文件覆盖工作副本中的文件。什么时候使用“pull”和“checkout”?pull是一个fetch加上merge,checkout是一个本地操作,只对已经获取的数据进行操作。所以这根本不像svn结账。来自svn世界,我也很困惑。哇!真是一团糟。在理想的情况下,我会强制每个源代码管理系统制造商使用相同的术语。Fork是一个github术语,与git本身无关。问题没有提到锁,现在应该假设一个人不熟悉这个概念,因此,只有在“从远程git服务器”-服务器不必是远程的
    git clone
    也可用于本地回购。感谢链接到git的可视参考@Kit Ho:这个链接可以作为参考,但是对于像上面这样对git有基本问题的人来说没有太大帮助。正如文章本身所说,“一旦你了解了一点git的工作原理,这个网站可能会巩固你的理解。”循环定义并没有那么大帮助。用于描述克隆的“fetch”一词很有用,并且增加了含义,但是短语“checkout is to checkout…”没有增加含义,也没有帮助区分这两个操作之间的差异。很好。这个
    -b
    选项非常棒,它创建了一个新的本地分支,并在单个命令中同时检出它。我喜欢!