【Git】Repo同步代码

本文介绍了Google开发的Repo工具,该工具使用Python编写并调用Git来管理大型项目的多个仓库。文章详细解释了Repo的工作原理,包括如何初始化Manifest、同步项目代码、切换分支等操作,并提供了实用的命令示例。

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

  • Repo是Google开发的,使用Python编写的,调用Git的脚本。
  • 为什么要存在Repo?
  • 答:假设一个项目,包含多个(假设上百个)仓库。使用原生的Git命令,难以同时管理项目下众多的仓库。为了统一管理项目,需要在Git上在封装一层接口。
Repo获取项目代码(Linux)
  • 初始化Manifest(其实,就是包含项目中所有仓库git地址的配置文件),有趣的可以在项目目录(就是敲下面命令的路径下),对应的**.repo**目录中中查看manifest.xml内容。
# usage: repo init -u ManifestAddress -b BranchName(Default:Master)
repo init -u xxxxx/xxxxx/manifest -b master
  • 获取代码
# 获取整个项目代码
repo sync

# 获取指定仓库代码
# xxx/xxx 为指定仓库的路径(可在manifest中查看)
repo sync xxx/xxx

# 不取tag(减少服务器开销)
repo sync -cdq --no-tags
  • 本地开启master分支(Repo初始化项目时,Clone下的代码是没有分支的)
  • 请注意,repo start 切换分支时的特性
# 开启指定仓库
repo start master xxx/xxx
# 开启项目中全部仓库
repo start master --all

# repo start 封装了 git checkout -b
# 区别:git checkout -b 当前所在分支基础上,创建特性分支
# 区别:repo start 在清单指定分支基础上,创建特性分支(创建的特性分支,以清单指定分支为基础)

repo start branchName  xxx/xxx
# 等价于 
cd xxx/xxx
git checkout -b branchName
# 假设清单指定分支是master
git branch --set-upstream-to=origin/master branchName
  • 使用Repo统一切换,项目(所有仓库)分支
repo init -u xxx/xxx/manifest -b BranchName
repo sync # 同步
  • 本地代码改动时,出现"xxx/xxx: discarding x commist",使用下述命令reset后,再同步
repo forall -c git reset --hard
repo init -u xxx/xxx/manifest -b BranchName
repo sync
repo start BranchName --all
Git系列
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值