当前位置: 首页 > article >正文

git merge :开发分支与主分支的交互

一、开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支

git checkout dev
git pull
git checkout master
git merge dev
git push -u origin master

二、当master代码改动了,需要更新开发分支(dev)上的代码

git checkout master 
git pull 
git checkout dev
git merge master 
git push -u origin dev
一、详细说明:开发分支(dev)上的代码达到上线标准后,合并到主分支
  1. 切换到开发分支并拉取最新代码

    git checkout dev
    git pull
  2. 切换到主分支

    git checkout master
  3. 合并开发分支到主分支

    git merge dev
  4. 解决冲突(如果有)

    • 如果合并过程中出现冲突,Git 会提示哪些文件有冲突。
    • 打开这些文件,手动解决冲突。
    • 解决冲突后,添加已解决的文件:
      git add <conflicted-file>
  5. 完成合并并推送更改

    git commit -m "Merge dev into master"
    git push -u origin master
二、详细说明:当主分支代码改动后,需要更新开发分支上的代码
  1. 切换到主分支并拉取最新代码

    git checkout master
    git pull
  2. 切换到开发分支

    git checkout dev
  3. 合并主分支到开发分支

    git merge master
  4. 解决冲突(如果有)

    • 如果合并过程中出现冲突,Git 会提示哪些文件有冲突。
    • 打开这些文件,手动解决冲突。
    • 解决冲突后,添加已解决的文件:
      git add <conflicted-file>
  5. 完成合并并推送更改

    git commit -m "Merge master into dev"
    git push -u origin dev
补充:遇到冲突后的处理情况

当合并过程中出现冲突时,Git 会在冲突文件中插入冲突标记,帮助你识别和解决冲突。冲突文件中的冲突标记如下所示:

<<<<<<< HEAD
// 当前分支的代码
=======
// 要合并分支的代码
>>>>>>> <branch-name>

以下是一个详细的处理冲突的步骤:

  1. 识别冲突文件

    • Git 会在合并过程中提示哪些文件有冲突。例如:
      Auto-merging file.txt
      CONFLICT (content): Merge conflict in file.txt
  2. 打开冲突文件

    • 使用文本编辑器打开冲突文件,找到冲突标记。
  3. 手动解决冲突

    • 删除冲突标记,并根据实际情况选择保留或合并代码。例如:
      // 假设这是冲突文件的内容
      <<<<<<< HEAD
      public void methodA() {
          System.out.println("Method A");
      }
      =======
      public void methodA() {
          System.out.println("Updated Method A");
      }
      >>>>>>> dev
      解决后的代码:
      public void methodA() {
          System.out.println("Updated Method A");
      }
  4. 添加已解决的文件

    • 使用 git add 命令添加已解决的文件:
      git add file.txt
  5. 完成合并

    • 使用 git commit 命令完成合并:
      git commit -m "Resolve merge conflicts"
  6. 推送更改

    • 使用 git push 命令将更改推送到远程仓库:
      git push -u origin <branch-name>


http://www.kler.cn/a/415349.html

相关文章:

  • qt QProxyStyle详解
  • flutter 解决webview加载重定向h5页面 返回重复加载问题
  • 浅谈——深度学习和马尔可夫决策过程
  • UDP客户端服务器通信
  • Linux基础项目包含(DNS,FTP,Samba)
  • 透视投影(Perspective projection)与等距圆柱投影(Equirectangular projection)
  • FTP介绍与配置
  • 【论文复现】上下位关系自动检测方法
  • 离线安装 Docker-IO:详细步骤指南
  • 非telnet方式测试端口状态
  • FuseGPT:生成式预训练变压器的可学习层融合
  • 嵌入式的应用领域有哪些
  • Admin.NET框架使用宝塔面板部署步骤
  • Spark基本命令详解
  • UI控件使用说明
  • 力扣 岛屿数量-200
  • Java—I/O流
  • react + vite 中的环境变量怎么获取
  • 网络安全中的数据科学如何重新定义安全实践?
  • 嵌入式开发之Bootloader移植(一)
  • 在更改文件名字关于PermissionError: [WinError 5] 拒绝访问。
  • DeepSpeed框架配置解析:一份详细的日志分析
  • 电子应用设计方案-30:智能扫地机器人系统方案设计
  • 18. 【.NET 8 实战--孢子记账--从单体到微服务】--记账模块--账本
  • eBay 基于 Celeborn RESTful API 进行自动化工具集成实践
  • Flink四大基石之CheckPoint