git合并多个项目并保留提交版本记录

目录

一、场景

二、合并步骤

1.本地新建 all 目录,并初始化

 2.在 all 中添加 a,b,c 的远程分支

3.验证是否添加成功

4.在 all 目录下,获取 a, b,c 的 master 分支数据

5.合并项目并移动到子目录中

 6.推送 all 的 master 分支到远程


一、场景

假设有三个项目a,b,c,分别有独立的git地址,现在迁移代码后要合并到同一个新的git地址
a:远程地址为:https://xxx.xx/a.git ,分支为master
b:远程地址为:https://xxx.xx/b.git ,分支为master
c:远程地址为:https://xxx.xx/c.git ,分支为master

合并后的仓库地址为https://xxx.xx/all.git, 目录结构为
all 
  - a_new   # 对应原项目a
  - b_new   # 对应原项目b
  - c_new   # 对应原项目c

二、合并步骤

1.本地新建 all 目录,并初始化

mkdir all
cd all
git init

 2.在 all 中添加 a,b,c 的远程分支

git remote add origin_a https://xxx.xx/a.git
git remote add origin_b https://xxx.xx/b.git
git remote add origin_c https://xxx.xx/c.git

3.验证是否添加成功

git remote -v

4.在 all 目录下,获取 a, b,c 的 master 分支数据

如果是其他分支修改master即可

git fetch origin_a master
git fetch origin_b master
git fetch origin_c master

5.合并项目并移动到子目录中

# 合并a项目
git merge origin_a/master --allow-unrelated-histories  # 合并,并保留历史。--allow-unrelated-histories:允许合并不相关历史
mkdir a_new   # 新建子文件夹
# 移动到此文件中(mv!排除需要忽略的文件夹,此处排除了.git, a_new文件夹,需根据实际情况排除相关的文件夹不移动)
# 注意:报错的话(git bash: !: event not found)执行下shopt -s extglob
mv !(.|..|.git|a_new) a_new
git add . && git commit -m "merge a_master and mv to a_new"  # 生成一条commit日志

# 合并b项目
git merge origin_b/master --allow-unrelated-histories
mkdir b_new
mv !(.|..|.git|a_new|b_new) b_new
git add . && git commit -m "merge b_master and mv to b_new"

# 合并c项目
git merge origin_c/master --allow-unrelated-histories
mkdir c_new
mv !(.|..|.git|a_new|b_new|c_new) c_new
git add . && git commit -m "merge c_master and mv to c_new"

 6.推送 all 的 master 分支到远程

git remote add origin https://xxx.xx/all.git
git push -u origin master

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

棉花糖老丫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值