git clone
和git checkout
有什么区别?#1 楼
结帐手册页:http://git-scm.com/docs/git-checkout克隆手册页:http://git-scm.com/docs/git-clone
总而言之,克隆用于获取您没有的存储库,签出用于在您已经拥有的存储库中的分支之间切换。
注意:对于那些具有SVN / CVS背景并且是Git的新手,SVN / CVS中的
git clone
等效于checkout
。不同术语的相同措词常常令人困惑。评论
签出也可以用于其他用途,例如用另一个修订版本的文件版本覆盖工作副本中的文件。
– svick
2011年9月4日上午10:44
以及何时使用“拉”和“结帐”?
–科科多科
2015年5月25日晚上11:16
pull是获取加合并,checkout是仅对已获取的数据进行操作的本地操作。因此,这根本不像svn结帐。
– 8月Lilleaas
15年5月26日在12:02
来自SVN世界,我也很困惑。哇..真是一团糟。在理想情况下,我将强制每个源代码控制系统制造商使用相同的术语。
–佐尔坦·塔玛斯(ZoltánTamási)
15年11月20日在8:46
Fork是一个github术语,与git本身无关。
– 8月Lilleaas
15年11月24日在18:08
#2 楼
git clone是要从远程git服务器中获取您的存储库。git checkout是检出所需的存储库状态(如分支或特定文件)。
例如,您当前在master分支上,并且您想要切换到development分支。
git checkout develop_branch
例如,您想签出特定文件的特定状态
git checkout commit_point_A -- <filename>
这里是为您学习Git提供了很好的参考,可让您更轻松地理解。
评论
“来自远程git服务器”-不需要将服务器远程。 git clone也可以与本地存储库一起使用。
– SET
2012年11月28日在1:29
感谢您链接到git的直观参考!
– David Pointer
16年8月10日在14:45
@Kit Ho:该链接可以作为参考,但对于像上面的人这样的关于git的基本问题的人来说,它的帮助不大。正如文章本身所说,“一旦您对git的工作原理有所了解,该站点将巩固您的理解”
– S.N.
16-10-24在22:04
循环定义不是那么有用。用来描述克隆的单词“ fetch”是有用的,并且增加了含义,但是短语“ checkout is to checkout ...”并没有增加含义,实际上也没有帮助区分这两个操作之间的区别。
–C Perkins
20-2-19在22:10
#3 楼
要注意的一件事是git中缺少任何“复制”。那是因为您的本地存储库中已经有完整副本-您的本地存储库是所选上游存储库的clone
。因此,您可以有效地对所有内容进行个性化设置,而无需在参考存储库中的这些文件上添加“锁定”。Git提供了SHA1哈希值作为验证您所拥有副本的机制。文件/目录树/提交/回购与在信任层次结构中能够将事物声明为“主”的任何人使用的文件/目录树完全相同。这样可以避免导致大多数SCM系统阻塞的所有“锁”(通常会出现私有副本,大型合并以及没有真正控制或管理源代码的问题;-)!
评论
这个问题没有提到锁,现在应该默认假定一个人不熟悉此概念,因此,只有明确提出要求时,才应解释与旧VCS的区别。
– wRAR
2011年9月4日13:27
#4 楼
简单地git checkout有2种用途在现有本地分支之间切换,例如
git checkout <existing_local_branch_name>
使用标志-b从当前分支创建一个新分支。假设您在master分支中,那么
git checkout -b <new_feature_branch_name>
将使用master的内容创建一个新分支,并切换到新创建的分支。您可以在官方站点找到更多选项
评论
真好这个-b选项很棒,它创建了一个新的本地分支,并在单个命令中同时将其检出。爱它!
– RBT
18年1月16日在6:29
#5 楼
checkout
可用于多种情况:第一种情况:在本地存储库中的分支之间切换
例如:
git checkout exists_branch_to_switch
您也可以创建新的分支并在这种情况下使用
-b
git checkout -b new_branch_to_switch
第二种情况:从x rev
git checkout rev file_to_restore
恢复文件。 。
评论
相关:stackoverflow.com/questions/3329943/…