Git clone 常见用法

本文详细介绍了如何使用Git从远程仓库克隆整个代码仓库或单个仓库,包括使用repo工具和git命令的具体步骤,以及如何配置环境和解决常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

克隆Git仓库

1.1 从远程仓库中克隆整个代码仓库

mkdir Demo  //在当前路径下新建一个文件夹,用来存放将要拉取的整个代码库

cd Demo //进入这个文件夹

repo init -u ssh://igerrit.storm:29418/Demo/manifest -b master

//-u :指定一个URL,其连接到一个manifest仓库

//-m:在manifest仓库中选择一个xml文件

//manifest:manifest是远程仓库里的一份清单,init的时候就是按照这份清单从服务器进行同步的

//ssh://igerrit.storm:29418/Demo/ :是一个远程服务器的地址,地址可以是私人的也可以是共有的,共有的表示代码是公开的

//-b:表示后接分支名,可以是master,也可以是其他分支

repo sync //这是一个封装的命令,用来同步代码。 上一步应该用时比较少,这一步用时较长

repo start master --all  //这也是一个封装的命令,用来切分支的。这一步不可缺少 ,意为将拉下来的版本库都切换到master分支,如果不做这一步,克隆下来的所有仓库默认是no branch状态,容易导致后面工作时添加的代码丢失

1.2 克隆单个仓库

git clone https://github.com/××× 从远程库中克隆,克隆一个版本库到新的目录,可以在当前目录新建一个文件夹,也可以git clone [地址] [本地目录]

git clone ssh://igerrit.storm:29418/tools/repo.git // 同上,

之后 git pull origin master //origin是远程主机,master是默认分支

要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。

Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快

单一仓库的更新可以使用git pull命令。

repo init 完成的操作如下:

(1):完成repo 工具的完整下载,执行的repo脚本只是引导程序

(2):克隆清单库manifest.git(地址来自于-u参数)

(3):克隆的清单库位于manifest.git中,克隆到本地.repo/manifests.清单,.repo/manifest.xml只是符号链接,它指向.repo/manifests/default.xml文件,

repo sync:用于参照清单文件.repo/manifest.xml克隆并同步版本库。如果某个版本库尚不存在,则执行repo sync命令相当于执行git clone。如果项目版本库已经存在,则相当于执行下面的两条指令:

(1):git remote update //相当于对每一个remote源执行了fetch操作

(2):git rebase origin/branch //针对当前分支的跟踪分支执行rebase操作

repo start:创建并切换分支,是对git checkout -b命令的封装 //如果存在分支则切换分支,若不存在则创建并切换

区别是repo start 是在清单文件设定分支的基础上创建特性分支,git checkout是在当前所在分支的基础上创建特性分支,如果是针对于整个版本库,那么相当于 repo forall -c git checkout -b

题外:在使用这些命令克隆仓库之前,我们是需要配置一些环境,如ssh的key,用户名,邮箱名等等

如果公司使用的是私有github,在初始化仓库之前需要若是初始化仓库的时候出现提示仓库已经初始化,那么可以尝试删除本地的.repo。

参考博客:https://www.cnblogs.com/qianqiannian/p/5994535.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值