git clone和checkout有什么区别?

时间:2011-09-04 10:33:04

标签: git command

git clonegit checkout之间的区别是什么?

5 个答案:

答案 0 :(得分:303)

结帐的手册页:http://git-scm.com/docs/git-checkout

克隆的手册页:http://git-scm.com/docs/git-clone

总而言之,clone用于获取您没有的存储库,checkout用于在您已有的存储库中的分支之间进行切换。

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

答案 1 :(得分:121)

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

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

例如,您目前在主分支机构,并且您想切换到开发分支。

git checkout develop_branch

例如,您想要结帐到特定文件的特定状态

git checkout commit_point_A -- <filename>

这是一个good reference供您学习Git,让您更容易理解。

答案 2 :(得分:11)

有一点需要注意的是git中缺少任何“Copyout”。那是因为您的本地仓库中已经有一个完整副本 - 您的本地仓库是您选择的上游仓库的clone。因此,您实际上有一个所有的个人checkout,而不会对参考仓库中的这些文件进行“锁定”。

Git提供SHA1哈希值作为验证文件/目录树/ commit / repo的副本与谁能够在层次结构中将事物声明为“主”的人使用的机制完全相同的机制信任这避免了导致大多数SCM系统窒息的所有“锁定”(通常存在私有副本,大合并,没有实际控制或源代码管理的问题;-)!

答案 3 :(得分:4)

简单的git checkout有2次使用

  1. t1 = BashOperator( task_id="celery_restart", bash_command="celery multi restart 1", dag=dag )
  2. 等现有本地分支之间切换
  3. 使用标志-b从当前分支创建新分支。假设您在主分支处,那么git checkout <existing_local_branch_name>将创建一个包含master内容的新分支并切换到新创建的分支
  4. 您可以在official site

    找到更多选项

答案 4 :(得分:2)

checkout可用于许多情况:

第一种情况:在本地存储库中的分支之间切换 例如 : git checkout exists_branch_to_switch

您还可以使用-b

创建新分支并切换到这种情况

git checkout -b new_branch_to_switch

第二种情况:从x rev恢复文件

git checkout rev file_to_restore ...