合并两个 Git 仓库,保存所有提交记录

将两个 Git 代码库合并成一个同时保留修改记录的过程,可以通过几个步骤完成。

这里提供一种常见的方法,使用git remotegit merge命令来实现。

假设场景

  • 代码库A:原始代码库,希望将另一个代码库合并到这个库中。
  • 代码库B:要合并的代码库,将这个库的内容和修改记录合并到代码库A中。

步骤概览

  1. 备份两个代码库:在进行合并操作前,为两个代码库做好备份是一个好习惯,以防万一合并过程中出现问题。
  2. 在代码库A中创建一个新的分支:为了保证主分支的干净整洁,可以在代码库A中创建一个新的分支来进行合并操作。
  3. 将代码库B添加为代码库A的远程仓库:通过git remote add命令将代码库B作为一个新的远程仓库添加到代码库A中。
  4. 拉取代码库B的内容:使用git fetch命令拉取代码库B的所有分支和提交记录。
  5. 合并代码库B到新分支:使用git mergegit cherry-pick命令将代码库B的内容合并到代码库A的新分支中。
  6. 解决冲突并提交:如果合并过程中出现冲突,解决这些冲突,然后提交合并结果。
  7. (可选)合并新分支回主分支:在确认合并后的代码无误之后,可以将新分支合并回代码库A的主分支中。

具体操作

以下操作假设你已经在本地拥有代码库A的副本,并且具备代码库B的访问权限。

1. 在代码库A中创建新分支
cd path/to/repoA
git checkout -b merge-repoB
2. 添加代码库B为远程仓库
git remote add repoB /path/to/repoB

如果代码库B位于远程服务器上,路径应该是一个URL。

3. 拉取代码库B的内容
git fetch repoB
4. 合并代码库B到新分支

合并代码库B的主分支(或你想要合并的特定分支)到当前分支:

git merge repoB/main --allow-unrelated-histories

这里repoB/main指的是代码库B的main分支。

如果代码库 B 使用的是master分支,相应地替换为repoB/master

--allow-unrelated-histories选项允许合并两个没有共同祖先的历史。

5. 解决合并冲突

如果合并时遇到冲突,需要手动解决冲突,然后继续完成合并操作。

6. 提交合并结果
git commit -am "Merge repoB into repoA"
7. 将新分支合并回主分支(可选)

如果满意合并结果,可以将这个新分支合并回主分支:

git checkout main
git merge merge-repoB

通过这个过程,将两个代码库合并成一个,并保留了它们的修改记录。

相关推荐

  1. 合并 Git 仓库保存所有提交记录

    2024-03-23 03:44:02       41 阅读
  2. 从SVN迁移到GIT保留所有提交记录

    2024-03-23 03:44:02       45 阅读
  3. Git从一个仓库合并另一个仓库的某一次提交

    2024-03-23 03:44:02       48 阅读
  4. GIT仓库发布提交

    2024-03-23 03:44:02       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-23 03:44:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-23 03:44:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-23 03:44:02       87 阅读
  4. Python语言-面向对象

    2024-03-23 03:44:02       96 阅读

热门阅读

  1. CentOS7 安装和使用Docker

    2024-03-23 03:44:02       44 阅读
  2. HTML是什么,它在前端开发中扮演什么角色?

    2024-03-23 03:44:02       44 阅读
  3. Unix环境高级编程-学习-07-多线程之互斥锁

    2024-03-23 03:44:02       34 阅读
  4. Springboot vue elementui 停车场管理系统

    2024-03-23 03:44:02       37 阅读
  5. 383. 赎金信

    2024-03-23 03:44:02       44 阅读
  6. Python——删除加密excel文件的密码

    2024-03-23 03:44:02       45 阅读