主子仓库都修改,如何进行同步?

主仓库切换分支的时候,子仓库会受到什么影响?

主仓库切换,子仓库不变。

这个概念非常重要,很多人不理解这个不变是指什么?

举个例子:

设:远程的master子仓库a版本id是111,远程的master子仓库a版本id是222。

从master切换到dev,master有个子仓库a版本id是111,切换到dev后,子仓库a版本id还是111,本地与远程不一致

本地与远程如何变得一致呢?

git submodule update

使用此命令后,会去远程重新同步dev分支下的子仓库链接
也就是dev分支的子仓库a版本id变成222,本地与远程一致

当主仓库和子仓库都做了修改,如何同步到远程?

难点:dev的子仓库和master的子仓库版本不同,直接合并会冲突。

利用本地与远程的不一样性,可以进行不回滚修改。

前期提要:正常开发应当至少有dev分支和master分支,你应当在dev分支进行开发,然后合并到master

具体操作:
首先在dev:进入子仓库目录提交你子仓库,所有更新到dev分支,即add/commit/push三件套(子仓库的master也是同理,不过先merge),同样方式提交你的主仓库。

然后:
cd退到主仓库,此时的主仓库应当在dev分支,
切换到master分支,git submodule update 此时的主仓库和子仓库链接都更新为master的
此时,dev分支子仓库链接同master,因为切换分支不会导致链接更新,所以,可以利用这个间隙,将主仓库更新过去,

接着:
git merge dev 将dev合并过来,由于子仓库链接一致就不会产生冲突,更新完主仓库,可以同时修改子仓库,
即进入子仓库,切换到master分支,(直接进来分支是历史提交记录)退回主仓库,即可看到有子仓库有更新,此时就可以一起提交到远程。

如上所述,主子仓库更新完毕
要继续进行后续开发注意
Git checkout dev
Git submodule update
更新dev分支的子仓库链接

现状

首先


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值