使用git合并兩個(gè)不同項(xiàng)目代碼
前言, 這里解決的是兩個(gè)不同的項(xiàng)目, 因?yàn)椴煌?xiàng)目那必然是兩個(gè)不同的git倉庫
都是不同的git倉庫了那就更不可能是相同的分支了(即使分支名相同)
至于為什么會(huì)有這種業(yè)務(wù)情況出現(xiàn), 我也不知道, 反正先學(xué)干就完了
這里圖形化界面演示用的是idea自帶的git插件, 因?yàn)椴皇莋it命令行高級(jí)玩家, 所以有部分操作配合idea自帶git插件盡享完成, 想學(xué)命令行操作可以據(jù)根據(jù)具體需求進(jìn)行百度
一. 兩個(gè)不同項(xiàng)目 -> 以及明確目的
-
首先我們要有兩個(gè)不同的項(xiàng)目分別是項(xiàng)目A和項(xiàng)目B, 且項(xiàng)目B不是從項(xiàng)目A中fork出來的(本鳥git底層邏輯不是很吊所以fork的是否可行, 我還沒有嘗試, 從理論知識(shí)上來說我是未知的)
這里我們假設(shè)
- 項(xiàng)目A是碼云上的ruoyi項(xiàng)目(https://gitee.com/y_project/RuoYi)
- 項(xiàng)目B是碼云上的小諾項(xiàng)目(https://gitee.com/xiaonuobase/snowy-layui)\
-
目的
我們的目的是將小諾和ruoyi進(jìn)行合并
二. clone代碼
-
首先我們先克隆一下ruoyi的代碼, 這里用命令行展示, 因?yàn)閕dea的話需要截圖, 比較懶的截圖
git clone {git倉庫地址}
# 命令行 git clone https://gitee.com/y_project/RuoYi.git # 輸出日志 Cloning into 'RuoYi'... remote: Enumerating objects: 28848, done. remote: Counting objects: 100% (285/285), done. remote: Compressing objects: 100% (202/202), done. remote: Total 28848 (delta 69), reused 32 (delta 4), pack-reused 28563 Receiving objects: 100% (28848/28848), 11.10 MiB | 1.58 MiB/s, done. Resolving deltas: 100% (13759/13759), done.
-
打開idea對(duì)應(yīng)文件夾我們可以看到代碼已經(jīng)在了
-
接下來我吧我們的小諾的項(xiàng)目添加到我的這個(gè)遠(yuǎn)程倉庫的remote中命令行
git remote add {你命名的新remote名字} {git倉庫地址}
git remote add xiaonuo https://gitee.com/xiaonuobase/snowy-layui.git
-
這個(gè)是沒有對(duì)應(yīng)日志的所以我們?cè)趺床榭闯晒α四? -> 使用fetch命令
git fetch {remote}/{branch}
這里我不需要刷新具體的branch我就都刷新了# 命令行 git fetch xiaonuo # 日志 remote: Enumerating objects: 10303, done. remote: Counting objects: 100% (108/108), done. remote: Compressing objects: 100% (77/77), done. remote: Total 10303 (delta 29), reused 0 (delta 0), pack-reused 10195 Receiving objects: 100% (10303/10303), 130.71 MiB | 6.84 MiB/s, done. Resolving deltas: 100% (5387/5387), done. From https://gitee.com/xiaonuobase/snowy-layui * [new branch] master -> xiaonuo/master
-
查看圖形化界面, 可以看到已經(jīng)出現(xiàn)了
三. 合并
-
這里使用
git merge {remote}/{branch} --allow-unrelated-histories
命令其中這里的
--allow-unrelated-histories
該命令可以合并不相關(guān)的分支。除非存在文件沖突,否則它可以無縫運(yùn)行。如果發(fā)現(xiàn)沖突,別無選擇,只能使用更長的解決方案。# 命令行 git merge xiaonuo/master --allow-unrelated-histories # 日志 Auto-merging .gitignore CONFLICT (add/add): Merge conflict in .gitignore Auto-merging LICENSE CONFLICT (add/add): Merge conflict in LICENSE Auto-merging README.md CONFLICT (add/add): Merge conflict in README.md Auto-merging pom.xml CONFLICT (add/add): Merge conflict in pom.xml Automatic merge failed; fix conflicts and then commit the result.
-
這里我們?nèi)it插件中查看可以發(fā)現(xiàn), 是有一些沖突文件的需要在我們commit之前進(jìn)行解決
-
解決完成之后我們就可以進(jìn)行提交了, 這里我提交的比較多可能有點(diǎn)慢因?yàn)槲夜催x了analyzing code
-
這里是是分析檢測到了一些代碼上的error和warning, 我這里不是重點(diǎn), 沒刷新maven正常直接commit anyway
-
提示提交成功
-
查看git圖形化界面可以看到我們對(duì)應(yīng)的提交記錄
-
然后就可以push了后續(xù)我就不演示了, 因?yàn)槲沂侵苯永膔uoyi的倉庫, 本菜鳥不是ruoyi的commiter, 所以沒有push權(quán)限文章來源:http://www.zghlxwxcb.cn/news/detail-786637.html
-
當(dāng)然也要記得合并完成之后要把沒用的Remote刪除掉, 以及垃圾分支, 本鳥精神潔癖文章來源地址http://www.zghlxwxcb.cn/news/detail-786637.html
到了這里,關(guān)于使用git合并兩個(gè)不同項(xiàng)目代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!