在使用git clone -b <branch-name> <repo-name>
之前,我已经克隆了一个仓库的一个分支,但是最近发现正在使用git clone --single-branch -b <branch-name> <repo-name>
。
有什么区别?
答案 0 :(得分:1)
您使用的命令(Programa ejecutado con configuracion: limpiador_local.conf timestamp: 20190905-1534
posadas1:
DELETE m FROM movimiento AS m INNER JOIN tarjeta AS t ON m.nro_tarjeta = t.nro_tarjeta WHERE m.tipo_movimiento = 17 AND t.nro_tarjeta IN(3,4);
Limpieza de Movimientos [0 = OK]: 0.
- Cantidad Tarjetas Servicio Maxima = SELECT numero FROM configuracion WHERE clave='cantidad_tarjeta_servicio'.
)会克隆整个存储库。 git clone -b <branch-name> <repo-name>
选项唯一要做的就是更改最初签出的内容。
-b
更新默认的refspec,以便仅 下载指定分支的历史记录(和相关数据)。
答案 1 :(得分:0)
要进一步扩展Mark Adelsberger的回答(我已经赞成),请注意,git clone
的意思是:
创建一个新的完全空目录,或者如果有指导,则接管现有的完全空目录:
git clone https://github.com/git/git
将创建新目录git
来保存新的Git存储库。输入其余步骤的目录。但是您的命令行解释器不在新目录中,因此克隆完成后,您必须自己输入新目录。
在此空目录中运行git init
,以便它现在有一个.git
子目录来保存Git存储库。新的Git存储库完全是空的(没有提交,没有分支等,尽管您位于不存在的master
分支上)。
运行git remote add origin url
。例如,对于上述情况,Git会添加一个名为origin
的遥控器,告诉Git连接到https://github.com/git/git
。
还运行任何其他需要的git config
命令。
运行git fetch origin
。
为某些名为 git checkout branch
的计算机运行branch
。
如果愿意,您可以手动运行这六个步骤,但是git clone
更容易。
现在您知道这六个步骤是什么,现在很容易解释-b
参数和 --single-branch
参数:
-b branch
在第6步中选择要传递给git checkout
的参数。如果您自己未选择分支名称,则Git将从他们的建议中获得推荐 Git,在步骤5中,将使用该名称。
--single-branch
在第4步中添加了git config
命令。特别是,它更改了remote.origin.fetch
设置。
git remote add
步骤将/将remote.origin.fetch
设置为+refs/heads/*:refs/remotes/origin/*
,这是git fetch
命令的指令(请参见步骤5)以获取 all < / em>分支,并将它们全部重命名为您的origin/*
远程跟踪名称。
对于--single-branch
,git clone
会覆盖默认值。该refspec对的左侧不是+refs/heads/*
,而是+refs/heads/branch
。因此,右侧为+refs/remotes/origin/branch
,因此最终的remote.origin.fetch
设置为:
+refs/heads/<branch>:refs/remotes/origin/<branch>
指示第5步中的git fetch
和以后所有的git fetch
操作,以仅更新 您的origin/branch
远程服务器,跟踪名称。
请注意,如果您没有事先特别选择某个分支,git clone
将使用其他Git在步骤5中推荐的任何分支,以实现步骤4的配置结果。这意味着实际上这些步骤的顺序并不完全:git clone
仅在最方便的地方在内部进行每个部分。如果出于某种原因想要手动执行此操作,则需要按此顺序执行六个步骤。 (不过,只要由于其他git remote add
选项而不需要任何其他特殊配置选项,就可以将-t
与git clone
选项一起使用来合并步骤3和4。)