合并两个git仓库的不同分支

发布时间 2023-04-26 22:34:46作者: duothink

场景说明:
在A仓库开发,在某一时刻因为一些原因,将A仓库copy为B仓库继续开发,现在需要将B仓库的变更同步到A仓库,保存提交历史

操作步骤如下:

1. 拉取干净的A仓库与B仓库到本地,目录为A和B(保留.git目录)
2. 将B仓库添加为A仓库的远程仓库
cd A
git remote add repo-B ../B
- 这里远程的B仓库为带了.git的本地目录

3. 把B仓库中数据抓取到A仓库本地
git fetch repo-B

4. 将B仓库的develop分支checkout到A仓库的待合并分支,命名为feature/b-dev
git checkout -b feature/b-dev repo-B/develop

5. 合并A仓库本地的feature/b-dev分支到本地的develop分支
git checkout develop
git merge feature/b-dev -s recursive -Xignore-space-at-eol --allow-unrelated-histories
- 忽略仅行尾\r\n不同的文件

6. 解决冲突
- 可以使用文本编辑器查看冲突文件删掉不需要的内容
- 或者通过sourcetree等GUI软件解决:右键选择冲突文件->解决冲突->使用 他人版本 解决冲突 或 使用 我的版本 解决冲突

7. 保存提交推送
8. 删除远程仓库
 git remote rm repo-B

参考:

https://blog.csdn.net/qq_14824885/article/details/113865296