git clone
和git checkout
之间的区别是什么?
答案 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次使用
t1 = BashOperator(
task_id="celery_restart",
bash_command="celery multi restart 1",
dag=dag
)
git checkout <existing_local_branch_name>
将创建一个包含master内容的新分支并切换到新创建的分支您可以在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
...