如何将2台机器上的2个LOCAL git存储库合并为一个?

时间:2016-04-01 08:16:40

标签: git merge repository

我一直在分别开发一个项目的两个部分,我想合并它们。我没有将它们推送到远程服务器,但我想。

2本地回购合并:

  • Linux PC(SW)上的软件
  • Windows PC(FW)上的微控制器固件

如何以这种结构结束单个存储库?

project
|
+----fw
|
+----sw

如果可能的话,保留SW和FW的历史记录?

This article解释了类似的情况。但我想知道我是否可以这样做,只设置一个遥控器,如:

  1. 将SW推送到远程Linux
  2. 将SW从Windows克隆到新目录
  3. 创建一个名为merge-fw
  4. 的分支
  5. 从本地目录中提取FW→语法是什么 对于git-pull ???
  6. 中的存储库参数
  7. 将merge-fw合并为主
  8. 感谢。

1 个答案:

答案 0 :(得分:0)

让我们假设Windows回购将成为主要回购。

在Linux repo

确保所有来源都位于sw目录下(如果需要move filesgit commit这些更改。创建一个新分支merge-to-windows

    mkdir sw
    mv !(sw) sw # needs extglob set (shopt -s extglob)
    git add . && git commit -m "move all sources to sw"
    git checkout -b merge-to-windows

在Windows repo

  1. 确保所有来源都位于fw目录下,如果需要移动文件并git commit这些更改

  2. 将新远程数据添加到指向Linux存储库的Windows存储库

    git remote add linux <path to your linux machine>
    
  3. 使用

    获取Linux存储库的当前状态
    git fetch linux
    
  4. 合并linux repo的merge-to-windows分支

    git merge linux/merge-to-windows
    
  5. 现在,Windows上的master分支包含swfw的历史记录。我们可以将此状态推回到Linux上的master分支

    git push linux master:master
    
  6. 完成