XanderYe的个人小站

Git合并两个项目并保留所有历史记录

效果

合并前:
-mdblog-web 独立的 mdblog-web 项目,有自己的 .git/
-mdblog-api 独立的 mdblog-api 项目,有自己的 .git/

合并后:
-mdblog 即最开始的 mdblog-api,整合完后更名
-.git/ 最终剩下一个 .git
+web/ 对应 mdblog-web
+api/ 对应 mdblog-api

原理

1 进入 mdblog-api 文件夹,将 mdblog-web 作为远程仓库添加到 mdblog-api 来;
2 合并添加的库 mdblog-web 到原本的 mdblog-api 项目;
3 创建 web文件夹,把 mdblog-web 的 master 分支合并到 web 文件夹;
4 完成 web 转移提交;
5 完成 mdblog-api 文件的迁移;
6 完成项目合并并查看历史记录。

命令

git remote add -f mdblog-web D:/test/mdblog-web
git merge --strategy ours --no-commit --allow-unrelated-histories mdblog-web/master
mkdir web
git read-tree --prefix=web/ -u mdblog-web/master
git commit -m '完成 mdblog-web 的迁移,新目录为 web'
mkdir api
git add --all
git commit --message '完成迁移整合mdblog'
赞赏

发表回复

textsms
account_circle
email
13 + 0 = ?
verified user

 

XanderYe的个人小站

Git合并两个项目并保留所有历史记录
效果 合并前: -mdblog-web 独立的 mdblog-web 项目,有自己的 .git/ -mdblog-api 独立的 mdblog-api 项目,有自己的 .git/ 合并后: -mdblog 即最开始的 …
扫描二维码继续阅读
2020-08-17