创建多机之间的git中央仓库

本文详细介绍了如何在无法上传代码至云端仓库的情况下,利用Git在车载工控机Cookoo上搭建中央仓库,实现多机代码同步。首先在Cookoo上创建本地仓库,接着创建中央仓库并将所有本地仓库克隆到中央仓库。然后,设置本地仓库与中央仓库的同步关系。最后,说明了开发机如何与Cookoo中央仓库建立连接,进行代码的推送和拉取,确保开发过程中代码的一致性。
摘要由CSDN通过智能技术生成

背景介绍
在某些情况下展开多人写作开发工作时,由于环境和保密的要求,无法将代码上传至开发环境下的代码仓库(例如多人在现场部署车辆代码),此时需要搭建一个多机的中央仓库,便于代码同步与更新。在寻迹项目中,cookoo作为车载工控机,搭建了中央仓库,开发机可以直接与中央仓库同步代码,主要执行本文的4,5两个步骤的操作。

1、首先在cookoo上创建本地仓库

在目录/home/cookoo/01_tracing_ws/src/下面,分别创建了core_HMI、 core_planner、tune_planning、common、core_localizer、Doc workstation_UI、core_controller、core_perception、messages仓库;创建方法可以将其它源码仓库直接copy过去,也可以直接在本地创建仓库,然后添加源码;

2、在cookoo上创建中央仓库

中央仓库的作用是供多机同步使用的;

2.1 创建中央仓库的文件夹目录/home/cookoo/02_tracing_bare;
2.2 由原始代码库创建中央仓库,一次将所有仓库创建到中央仓库:
git clone --bare /home/cookoo/01_tracing_ws/src/messages/ ./messages-bare.git
git clone --bare /home/cookoo/01_tracing_ws/src/common/ ./common-bare.git
git clone --bare /home/cookoo/01_tracing_ws/src/core_localizer/ ./core_localizer-bare.git
git clone --bare /home/cookoo/01_tracing_ws/src/core_perception/ ./core_perception-bare.git
git clone --bare /home/cookoo/01_tracing_ws/src/core_controller/ ./core_controller-bare.git
git clone --bare /home/cookoo/01_tracing_ws/src/core_planner/ ./core_planner-bare.git
git clone --bare /home/cookoo/01_tracing_ws/src/core_HMI/ ./core_HMI-bare.git
git clone --bare /home/cookoo/01_tracing_ws/src/workstation_UI/ ./workstation_UI-bare.git
git clone --bare /home/cookoo/01_tracing_ws/src/tune_planning/ ./tune_planning-bare.git
git clone --bare /home/cookoo/01_tracing_ws/src/Doc/ ./Doc-bare.git

3、建立cookoo本地仓库与本地中央仓库同步关系

依次进入本地仓库,将中央仓库作为remote添加至本地:
common仓库

cd /home/cookoo/01_tracing_ws/src/common/
git remote add cookoo-bare /home/cookoo/02_tracing_bare/common-bare.git
git push cookoo-bare master
git branch --set-upstream-to=cookoo-bare/master master

messages仓库

cd /home/cookoo/01_tracing_ws/src/messages/
git remote add cookoo-bare /home/cookoo/02_tracing_bare/messages-bare.git
git push cookoo-bare master
git branch --set-upstream-to=cookoo-bare/master master

core_localizer仓库

cd /home/cookoo/01_tracing_ws/src/core_localizer/
git remote add cookoo-bare /home/cookoo/02_tracing_bare/core_localizer-bare.git
git push cookoo-bare master
git branch --set-upstream-to=cookoo-bare/master master

core_perception仓库

cd /home/cookoo/01_tracing_ws/src/core_perception/
git remote add cookoo-bare /home/cookoo/02_tracing_bare/core_perception-bare.git
git push cookoo-bare master
git branch --set-upstream-to=cookoo-bare/master master

core_controller仓库

cd /home/cookoo/01_tracing_ws/src/core_controller/
git remote add cookoo-bare /home/cookoo/02_tracing_bare/core_controller-bare.git
git push cookoo-bare master
git branch --set-upstream-to=cookoo-bare/master master

core_planner仓库

cd /home/cookoo/01_tracing_ws/src/core_planner/
git remote add cookoo-bare /home/cookoo/02_tracing_bare/core_planner-bare.git
git push cookoo-bare master
git branch --set-upstream-to=cookoo-bare/master master

core_HMI仓库

cd /home/cookoo/01_tracing_ws/src/core_HMI/
git remote add cookoo-bare /home/cookoo/02_tracing_bare/core_HMI-bare.git
git push cookoo-bare master
git branch --set-upstream-to=cookoo-bare/master master

workstation_UI仓库

cd /home/cookoo/01_tracing_ws/src/workstation_UI/
git remote add cookoo-bare /home/cookoo/02_tracing_bare/workstation_UI-bare.git
git push cookoo-bare master
git branch --set-upstream-to=cookoo-bare/master master

tune_planning仓库

cd /home/cookoo/01_tracing_ws/src/tune_planning/
git remote add cookoo-bare /home/cookoo/02_tracing_bare/tune_planning-bare.git
git push cookoo-bare master
git branch --set-upstream-to=cookoo-bare/master master

Doc仓库

cd /home/cookoo/01_tracing_ws/src/Doc/
git remote add cookoo-bare /home/cookoo/02_tracing_bare/Doc-bare.git
git push cookoo-bare master
git branch --set-upstream-to=cookoo-bare/master master

4、建立开发机与cookoo中央仓库的关系

4.1 如果本地没有仓库,则可在代码目录下clone远程仓库,直接建立关系:

新建本地目录~/00_proj/ws_tracing/src/;
在目录下执行如下操作:

git clone ssh://cookoo@192.168.0.200:/home/cookoo/02_tracing_bare/Doc-bare.git ./Doc

这样会在本地新建Doc文件夹,里面创建一个仓库,进入此文件夹后可以看到clone下来的代码,执行git status命令,能看到如下信息:

origin	ssh://cookoo@192.168.0.200:/home/cookoo/02_tracing_bare/Doc-bare.git (fetch)
origin	ssh://cookoo@192.168.0.200:/home/cookoo/02_tracing_bare/Doc-bare.git (push)

如果本地已经有仓库,则添加远程仓库关系

增加本地与cookoo的远程关系(注意正确填写仓库路径)

git remote add cookoo-bare ssh://cookoo@192.168.0.200:/home/cookoo/02_tracing_bare/common-bare.git

下拉更新远程的代码

git pull cookoo-bare master

上推本地代码

git push cookoo-bare master

5、将cookoo上的源码仓库与中央仓库同步

在将开发机代码推送到cookoo的中央仓库后,需要将cookoo的本地源码仓库与中央仓库同步;
进入源码的仓库目录,执行同步指令:

git pull cookoo-bare master
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值