git合并两个不同的仓库

目前开发是2个仓库,线上仓库online_a(对应的branch分支为online),测试环境online_b(对应的branch分支为demo),测试环境需要时刻保持onine_a上的最新稳定稳定代码同步过来。如何合并呢?特此记录下:
在测试仓库onine_b 上执行:

1:测试仓库添加远程生产仓库(切换到自己的测试仓库下执行以下命令,比如我的当期测试online_b.git)

git remote add online_a git@github.com:fantasy/online_a.git //将online_a作为远程仓库,添加到online_b中,设置别名为online_a(自定义,这里我是为了方便区分仓库名)

2:从远程仓库下载,这时我们弄个新的

git fetch online_a //从online_a仓库中抓取数据到本仓库,注意这里是上面设置的别名
$ git fetch online-a
remote: Counting objects: 21744, done.
remote: Compressing objects: 100% (7380/7380), done.
remote: Total 21744 (delta 15332), reused 20415 (delta 14323)
Receiving objects: 100% (21744/21744), 2.44 MiB | 214.00 KiB/s, done.
Resolving deltas: 100% (15332/15332), completed with 201 local objects.
From git@github.com:fantasy/online_a.git* [new branch]          demo              -> online-backend/demo
 * [new branch]          online            -> online-backend/online
 * [new tag]             demo-last-bad     -> demo-last-bad
 * [new tag]             demo-last-ok      -> demo-last-ok
 * [new tag]             v2.0-beta         -> v2.0-beta
 * [new tag]             v2.1-days         -> v2.1-days
 * [new tag]             v2.1-dist         -> v2.1-dist
 * [new tag]             v2.2-dist         -> v2.2-dist
 * [new tag]             v2.2-nosmartbid   -> v2.2-nosmartbid
 * [new tag]             v2.2demo          -> v2.2demo
 * [new tag]             v2.3-bad-smartbid -> v2.3-bad-smartbid
 * [new tag]             demo-no-score     -> demo-no-score
 * [new tag]             tmp-repay-v1      -> tmp-repay-v1
 * [new tag]             tmp-repay-v2      -> tmp-repay-v2
 * [new tag]             transfer-dep-last -> transfer-dep-last
 * [new tag]             transfer-dep-ok   -> transfer-dep-ok

3:将online_a仓库抓去的online分支作为新分支checkout到本地,新分支名设定为online_repo1

$ git checkout -b online_repo1 online-a/online  //注意这里也是别名online_a
Switched to a new branch 'online_repo1'
Branch 'online_repo1' set up to track remote branch 'online' from 'online-a'.

4:切换回本地测试的online_b的demo分支

$ git checkout demo
Switched to branch 'demo'
Your branch is up to date with 'origin/demo'.

5:将online_repo1合并入demo分支

git merge online_repo1

6:解决冲突:

git add .
git commit -m "合并"
git push online_repo1 online_a:online //上传到远程库
git checkout demo
git merge online_repo1
git branch -d online_repo1
总结:
  1. 大致思路是伪造远程的repo1仓库为repo2的一个分支,然后合并进来;
  2. 若是文件有冲突、或要建立子目录,建议在repo1中先解决,再进行如上操作。
合并远程 Git 仓库中的两个分支,通常的流程是先确保本地分支与远程分支同步,然后执行合并操作,并最终将合并后的结果推送到远程仓库。以下是具体的操作步骤: ### 合并远程仓库两个分支的方法 1. **拉取远程仓库的最新代码** 确保本地的远程分支信息是最新的,可以通过以下命令更新远程分支列表和提交历史: ```bash git fetch origin ``` 2. **切换到目标分支** 假设需要将 `feature-branch` 合并到 `main` 分支中,则首先切换到 `main` 分支: ```bash git checkout main ``` 3. **拉取远程主分支的最新代码** 确保本地的 `main` 分支与远程仓库的 `main` 分支保持同步: ```bash git pull origin main ``` 4. **合并远程分支到当前分支** 执行合并操作,将 `feature-branch` 合并到当前的 `main` 分支中: ```bash git merge origin/feature-branch ``` 如果在合并过程中出现冲突,需要手动解决冲突后提交更改。 5. **推送合并后的代码到远程仓库** 将本地合并后的 `main` 分支推送到远程仓库,以更新远程分支的状态: ```bash git push origin main ``` ### 注意事项 - 在执行合并操作之前,确保所有本地修改已经提交或暂存。 - 如果远程分支已经被删除或不存在,需要先确认分支名称是否正确。 - 合并操作可能会导致冲突,建议在合并前备份重要代码。 ### 示例代码 以下是一个完整的示例脚本,用于合并远程仓库两个分支: ```bash # 更新远程分支信息 git fetch origin # 切换到目标分支 main git checkout main # 拉取远程 main 分支的最新代码 git pull origin main # 合并远程 feature-branch 到本地 main 分支 git merge origin/feature-branch # 解决冲突(如果有)并提交更改 # git add . # git commit -m "Resolved merge conflicts" # 推送合并后的代码到远程 main 分支 git push origin main ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值