多个代码仓库带历史提交合并到一个仓库

场景:平时自己研究学习的小项目比较多,有前端vue的,有后端C#的,还有混合开发Blazor的,这些研究学习的多个项目是独立的代码仓库,现在各个研究学习的成果已经验证实现,下一步要把这些内容整合到一个项目里面进行开发。那么问题来了,如果现在各仓库的代码拷贝汇总到一个项目再推送到一个新仓库,会丢失之前验证研究的历史提交记录,而我想保留验证研究的历史记录。

下面的方法就是用SourceTree将多个仓库合并到一个新仓库并保留完整的历史记录。
使用git的subtree功能来保留原始提交历史。

步骤 1:创建新仓库

  1. 在 SourceTree 中点击 新建仓库 > 创建本地仓库
  2. 指定新仓库路径(如 MergeProject)
  3. 勾选 创建仓库时创建 README 文件(确保有初始提交)
  4. 点击 创建

步骤 2:合并第一个仓库到子目录

  1. 在SourceTree上打开命令行模式
  2. 执行命令(保留历史):
git remote add MyApps http://192.168.1.123:3000/administrator/MyApps.git
git fetch MyApps
git subtree add --prefix=MyApps MyApps/master
  1. 在 SourceTree 点击 刷新,查看提交历史

步骤 3:合并第二个仓库到子目录

重复步骤2

步骤4:推送到新远程仓库(可选)

  1. 在 SourceTree 点击 设置 > 远程
  2. 添加新的云端仓库地址(GitHub/GitLab)
  3. 点击 推送 上传合并后的仓库

关键原理说明

graph

常见问题处理

问题1: 确认初始提交状态

git commit --allow-empty -m "初始提交"

出现其他问题: 问ai吧,ai比我更懂你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值