自学内容网 自学内容网

关于Git分支合并,跨仓库合并方式

关于Git合并代码的方式说明

前情提要

同仓库不同分支代码的合并可直接往下看文档说明,跨仓库分支代码的合并操作之前要先拉取源仓库分支代码,

请参考:关于Git跨仓库合并代码的准备事项

另注: 以下操作说明均以Git客户端的Git Bash命令窗口操作,请提前下载TortoiseGit客户端并配置好SSH免密登录。

开始合并

打开分支代码所在文件目录,右击空白处点击Git Bash Here,打开命令执行窗口

PS: 不想敲命令的话,TortoiseGit也提供了GUI操作页面—Git GUI Here

在这里插入图片描述

方式一:git merge

使用场景若是针对整个分支的覆盖合并,可使用该命令,若只是部分更新,不要使用该命令!!!不要使用!!!不要!!!
该命令简单上网搜索即可,此处不做赘述。

方式二:git cherry-pick

使用场景针对单次提交、多次提交的合并操作

  1. git cherry-pick <commitId>: 单个commit的合并。

    举个栗子:

    • 使用git checkout -b命令新建dev分支,

      在这里插入图片描述

    • 使用git checkout master命令切回master分支,修改当前目录下的test文件。使用git status查看文件状态。

      在这里插入图片描述

    • 提交该文件,红框内就是本次提交的commitId

      在这里插入图片描述

      **注意了注意了注意了:**我这里要提交我修改的全部文件 所以后面带的参数是-am 若是部分文件的提交 那就是-m

    • 切到dev分支,进行合并

      在这里插入图片描述

    • 执行单次commit合并的命令,合并到dev后会形成一个新的commitId
      在这里插入图片描述

    • 查看dev分支上当前提交者的具体内容

      在这里插入图片描述

      注: --author 提交者 后面带的参数就是提交者的账号 --stat是优化内容格式展示的命令,非必须

  2. git cherry-pick <commitId-1> <commitId-2>…:多个commit的合并

    举个栗子:本次栗子中的命令均是使用了命令缩写,缩写配置可上网查看,此处概不赘述。

    • 在master分支上连续提交两次修改

      在这里插入图片描述

    • 切换到dev分支,同时合并此次的两次commit

      在这里插入图片描述

    • 查看dev分支的提交日志

      在这里插入图片描述

  3. git cherry-pick <commitId-1>…<commitId-n>/<commitId-1>^…<commitId-n>:某个commit区间的合并

    注意!注意!!注意!!!:区间范围前者前开后闭,后者双闭合

    举个栗子:

    • 在master上执行三次commit

在这里插入图片描述

  • 切到dev分支,采用区间合并方式来合并代码

    在这里插入图片描述

    **注意注意:**本次执行的是前开后闭的区间合并命令,所以起始的commitId是倒四的commitId

  • dev的提交日志查看验证

    在这里插入图片描述

方式三:git checkout

使用场景:针对文件的覆盖合并

举个栗子:

  • 在master分支上修改test.txt文件

    在这里插入图片描述

  • 在dev上也修改test.txt文件

在这里插入图片描述

  • 放弃dev上的修改,以master分支上的test文件修改为主,就可以直接把master分支上的test文件覆盖过来

    在这里插入图片描述

Git跨仓库合并的准备事项

本文举例均已文档撰写人本地文档目录为例,文档阅读者要以自身文档目录为准参考操作

前提

​ 以下称呼要拉取的代码仓库为源仓库,合并到的仓库为目标仓库

​ 从源仓库拉取代码合并到目标仓库

拉取源仓库代码

  1. 步骤一:进入九师市域git仓库目录,右键打开Git客户端执行窗口

在这里插入图片描述

  1. 步骤二: 执行添加源仓库地址,并命名为src

    在这里插入图片描述

    添加成功验证:
    在这里插入图片描述

3.步骤三: 代码拉取

在这里插入图片描述

  1. 步骤三: 新建分支,并将源仓库的master分支代码拉取到此分支下

    在这里插入图片描述

    说明一下哦:git checkout -b 新建分支并取名source,并将源仓库src下的master分支代码拉取到新建的source分支上

  2. 结束

    跨仓库合并代码的准备事项至此结束,后续的合并操作就是两个分支的合并操作了,参考前面分支合并操作即可。


原文地址:https://blog.csdn.net/u013983235/article/details/144394280

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!