step 1: 下载repo
git-repo下载可在服务器端通过以下任一方式下载。
git clone https://gerrit.googlesource.com/git-repo (谷歌官方源)
git clone https://mirrors.tuna.tsinghua.edu.cn/git/git-repo (国内清华源)
git clone git-repo - Git at Google (国内中科大源)
step 0:建立私人的git-repo工具工程:
方法一,在git server上直接操作
git clone https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -b main
方法二,在本地操作,然后上传到git server:
# git clone --mirror https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
git remote add gitrepo.git http://git.inspur.com/rk3588/gitrepo.git
git push -u gitrepo.git --all
git push -u gitrepo.git --tags (可选)
#git config --global http.postBuffer 1048576000 //设置缓存为1G
# git config http.postBuffer 524288000 //查看 http.postBuffer数值是否设置成功
step 2 初始化工程和mainifest git仓库
step 1: 初始化 manifest git server端,用于规划整个项目的代码结构:
pakydu@ubuntu18-fttr:~/works/3588/mygit$ mkdir -p rk3588/manifest
pakydu@ubuntu18-fttr:~/works/3588/mygit$ cd rk3588/manifest/
pakydu@ubuntu18-fttr:~/works/3588/mygit/rk3588/manifest$ ls -al
pakydu@ubuntu18-fttr:~/works/3588/mygit/rk3588/manifest$ git init
Initialized empty Git repository in /home/pakydu/works/3588/mygit/rk3588/manifest/
pakydu@ubuntu18-fttr:~/works/3588/mygit/rk3588/manifest$
#创建工程魔板:
vi default.xml
#提交工程模版
git add *
git commit -m "add default.xml"
git remote rm origin (删除旧的)
git remote add origin http://git.inspur.com/rk3588/manifest.git
git branch main
git checkout main
git push http://git.inspur.com/rk3588/manifest.git
step 3: 上传每个git的代码:
$ git init (已被git管控代码可省略)
$ git add . (已被git管控代码可省略)
$ git commit -m "Init Code" (已被git管控代码可省略)
$ git push http://git.inspur.com/rk3588/kernel.git master (master or main)
$git init (已被git管控代码可省略)
$ git add . (已被git管控代码可省略)
$ git commit -m "Init Code" (已被git管控代码可省略)
$ git push http://git.inspur.com/rk3588/buildroot.git master
...
step 4: 在客户端上repo拉取服务器端代码
将REPO_URL = ‘https://gerrit.googlesource.com/git-repo’
修改为 REPO_URL = ‘http://git.inspur.com/rk3588/git-repo.git’
#git push http://git.inspur.com/rk3588/git-repo.git
#export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
#export REPO_URL='http://git.inspur.com/rk3588/git-repo.git'
repo init -u http://git.inspur.com/rk3588/manifest.git
Manifest示例
每个采用 repo 管理的复杂多仓库项目都需要一个对应的 manifest 仓库,如 AOSP 的 manifest ,此仓库用来存储所有子仓库的配置信息,repo 也是读取此仓库的配置文件来进行管理操作。里面的配置就是 xml 定义的结构,例如aosp default repository一般是default.xml。
#示例
pakydu@ubuntu18-fttr:~/works/3588/rk3588_org/.repo$ cat manifests/rk3588/rk3588_linux_bsp_release_20230114_v1.0.6c.xml
pakydu@ubuntu18-fttr:~/works/3588/rk3588_org/.repo$ cat manifest.xml
参考:
https://www.exyb.cn/news/show-159545.html?action=onClick
总结常用repo命令 - 知乎
搭建repo服务器管理多个git工程_repo管理多个git_songze_lee的博客-CSDN博客