使用git合并两个不同项目代码

使用git合并两个不同项目代码

前言, 这里解决的是两个不同的项目, 因为不同项目那必然是两个不同的git仓库

都是不同的git仓库了那就更不可能是相同的分支了(即使分支名相同)

至于为什么会有这种业务情况出现, 我也不知道, 反正先学干就完了

这里图形化界面演示用的是idea自带的git插件, 因为不是git命令行高级玩家, 所以有部分操作配合idea自带git插件尽享完成, 想学命令行操作可以据根据具体需求进行百度

一. 两个不同项目 -> 以及明确目的

  • 首先我们要有两个不同的项目分别是项目A和项目B, 且项目B不是从项目A中fork出来的(本鸟git底层逻辑不是很吊所以fork的是否可行, 我还没有尝试, 从理论知识上来说我是未知的)

    这里我们假设

    • 项目A是码云上的ruoyi项目(https://gitee.com/y_project/RuoYi)
    • 项目B是码云上的小诺项目(https://gitee.com/xiaonuobase/snowy-layui)\
  • 目的

    我们的目的是将小诺和ruoyi进行合并

二. clone代码

  • 首先我们先克隆一下ruoyi的代码, 这里用命令行展示, 因为idea的话需要截图, 比较懒的截图

    git clone {git仓库地址}

    扫描二维码关注公众号,回复: 14944631 查看本文章
    # 命令行
    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对应文件夹我们可以看到代码已经在了

    在这里插入图片描述

  • 接下来我吧我们的小诺的项目添加到我的这个远程仓库的remote中命令行

    git remote add {你命名的新remote名字} {git仓库地址}

    git remote add xiaonuo https://gitee.com/xiaonuobase/snowy-layui.git
    
  • 这个是没有对应日志的所以我们怎么查看成功了呢? -> 使用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
    
  • 查看图形化界面, 可以看到已经出现了

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9dxsy9ut-1675240699780)(./使用git合并两个不同项目代码.assets/image-20230201160939401.png)]

三. 合并

  • 这里使用git merge {remote}/{branch} --allow-unrelated-histories命令

    其中这里的--allow-unrelated-histories该命令可以合并不相关的分支。除非存在文件冲突,否则它可以无缝运行。如果发现冲突,别无选择,只能使用更长的解决方案。

    # 命令行
    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.
    
  • 这里我们去git插件中查看可以发现, 是有一些冲突文件的需要在我们commit之前进行解决
    在这里插入图片描述

  • 解决完成之后我们就可以进行提交了, 这里我提交的比较多可能有点慢因为我勾选了analyzing code

    在这里插入图片描述

  • 这里是是分析检测到了一些代码上的error和warning, 我这里不是重点, 没刷新maven正常直接commit anyway

    在这里插入图片描述

  • 提示提交成功

    在这里插入图片描述

  • 查看git图形化界面可以看到我们对应的提交记录

    在这里插入图片描述

  • 然后就可以push了后续我就不演示了, 因为我是直接拉的ruoyi的仓库, 本菜鸟不是ruoyi的commiter, 所以没有push权限

  • 当然也要记得合并完成之后要把没用的Remote删除掉, 以及垃圾分支, 本鸟精神洁癖

猜你喜欢

转载自blog.csdn.net/weixin_43194885/article/details/128836618
今日推荐