Git 合并两个不同仓库的代码

Git 合并两个不同仓库的代码

在这里插入图片描述

仓库 (srvt-20231118) https://e.coding.net/g-qhco8175/demo/srvt-20231118.git

仓库 (srvt-20231227) https://e.coding.net/g-qhco8175/demo/srvt-20231227.git

合并两个不同仓库思路:添加两个远程仓库,将两个代码作为两个分支,然后手动合并譬如想

将 srvt-20231118 和 srvt-20231227 合并到 srvt-20231227 仓库中。

1、克隆项目到本地

​ 克隆项目 srvt-20231227 到本地

Administrator@USER-20230818FF MINGW64 /e/Repositories/srt
$ git clone https://e.coding.net/g-qhco8175/c30/srt-20231227.git
Cloning into 'srt-20231227'...
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcm/tlsverify for more informatio
n.
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcm/tlsverify for more informatio
n.
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcm/tlsverify for more informatio
n.
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 7 (delta 1), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (7/7), done.
Resolving deltas: 100% (1/1), done.

进入 克隆项目 文件夹内

Administrator@USER-20230818FF MINGW64 /e/Repositories/srt 
$ ls 
srt-20231227/ 
Administrator@USER-20230818FF MINGW64 /e/Repositories/srt 
$ cd srt-20231227/

2、添加要合并仓库

​ 添加要合并仓库 srvt-20231118 的远程地址

Administrator@USER-20230818FF MINGW64 /e/Repositories/srt/srt-20231227 (master) 
$ git remote add merge_branch https://e.coding.net/g-qhco8175/c30/srt-20231118.git

为了方便,这里将其命名为 merge_branch , 这个时候查看远程地址,应该已经有两个地址了

Administrator@USER-20230818FF MINGW64 /e/Repositories/srt/srt-20231227 (master) 
$ git remote -v 
merge_branch    https://e.coding.net/g-qhco8175/c30/srt-20231118.git (fetch) 
merge_branch    https://e.coding.net/g-qhco8175/c30/srt-20231118.git (push) 
origin  https://e.coding.net/g-qhco8175/c30/srt-20231227.git (fetch) 
origin  https://e.coding.net/g-qhco8175/c30/srt-20231227.git (push)

3、从远程仓库下载第二个仓库的代码

Administrator@USER-20230818FF MINGW64 /e/Repositories/srt/srt-20231227 (master)
$ git fetch merge_branch
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcm/tlsverify for more informatio
n.
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcm/tlsverify for more informatio
n.
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcm/tlsverify for more informatio
n.
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 13 (delta 3), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (13/13), 4.02 KiB | 60.00 KiB/s, done.
From https://e.coding.net/g-qhco8175/c30/srt-20231118
 * [new branch]      master     -> merge_branch/master

4、建分支然后合并到新分支

将从 srvt-20231118 仓库下载的 master 分支作为要合入到项目srvt-20231227 项目,需要先将其分支 checkout 到一个新分支上

Administrator@USER-20230818FF MINGW64 /e/Repositories/srt/srt-20231227 (master) 
$ git checkout -b dev merge_branch/master 
Switched to a new branch 'dev' 
branch 'dev' set up to track 'merge_branch/master'.

​ 这里没有冲突。实际项目中可能会有一些冲突,譬如有些文件提示无法删除,

​ subModule 提示问题等等。按照提示解决即可(手动删除或者修改,用 git status 查看冲突位置)。

5、切换原来的分支

Administrator@USER-20230818FF MINGW64 /e/Repositories/srt/srt-20231227 (dev) 
$ git checkout master 
Switched to branch 'master' 
Your branch is up to date with 'origin/master'.

6、合并 master 分支和 dev 分支

Administrator@USER-20230818FF MINGW64 /e/Repositories/srt/srt-20231227 (master)
$ git merge --no-ff --allow-unrelated-histories dev
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
Auto-merging readme.txt
CONFLICT (add/add): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.

7、查看冲突

Administrator@USER-20230818FF MINGW64 /e/Repositories/srvt/srvt-20231227 (master|MERGING)
$ git status
On branch master
Your branch is up to date with 'origin/master'.

You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both added:      README.md
        both added:      readme.txt


8、处理冲突

因为在开发过程中 会有很多文件冲突,如果通过命令行或者记事本记录处理效率太低,这里我们使用 SourceTree 来管理这仓库冲突。

下载安装 SourceTree

安装好后, 选择 文件 -打开 找到clone 项目的位子,打开就可以查看到冲突文件

然后使用丢弃行,或者块,或者编辑处理冲突文件,处理完成后 提交 推送至 第一个仓库 srvt-20231227

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值