沉梦听雨的编程指南 沉梦听雨的编程指南
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 基础篇
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • RPC
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 多媒体框架
  • 虚拟机
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 随笔
  • 前端环境搭建
  • HTML与CSS
  • JS学习
  • Axios入门
  • Vue Router入门
  • Pinia入门
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 脚手架搭建
  • 瑞吉外卖
  • 黑马点评
  • vue-blog
  • 沉梦接口开放平台
  • 用户中心
  • 聚合搜索平台
  • 仿12306项目
  • 壁纸小程序项目
  • RuoYi-Vue
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)

沉梦听雨

时间是最好的浸渍剂,而沉淀是最好的提纯器🚀
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 基础篇
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • RPC
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 多媒体框架
  • 虚拟机
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 随笔
  • 前端环境搭建
  • HTML与CSS
  • JS学习
  • Axios入门
  • Vue Router入门
  • Pinia入门
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 脚手架搭建
  • 瑞吉外卖
  • 黑马点评
  • vue-blog
  • 沉梦接口开放平台
  • 用户中心
  • 聚合搜索平台
  • 仿12306项目
  • 壁纸小程序项目
  • RuoYi-Vue
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)
  • 开发工具篇

    • idea相关

    • 玩转Git

      • 基础知识梳理
      • Git配置相关操作
      • git修改已提交人的用户名和邮箱
      • git提交规范
      • git分支管理
        • 1. 快进合并 (Fast-Forward Merge)
        • 2. 非快进合并 (No Fast-Forward Merge)
          • 自定义合并提交信息
          • 示例
        • 3. 解决合并冲突
        • 4. 拉取并合并远程分支
        • 5. 三方合并 (Three-Way Merge)
      • git常用操作
      • 常见问题
    • Maven相关

    • 前端工具

    • 测试工具

  • 工具库篇

  • 开发技巧篇

  • 工具类系列

  • 随笔

  • 开发日常
  • 开发工具篇
  • 玩转Git
沉梦听雨
2024-11-18
目录

git分支管理

# git 分支管理

在 Git 中,分支合并是一个常见的操作,用于将一个分支的更改集成到另一个分支中。合并后会生成一个新的提交记录,这个过程可以通过多种方式实现。下面详细介绍几种常用的合并方法及其命令。

# 1. 快进合并 (Fast-Forward Merge)

快进合并是最简单的情况,当目标分支的最新提交是你要合并分支的一个祖先时,Git 只需将指针向前移动即可完成合并。这种情况下不会生成新的提交记录。

步骤:

  1. 切换到目标分支:
    git checkout main
    
    1
  2. 合并源分支:
    git merge feature
    
    1

如果 main 分支的最新提交是 feature 分支的一个祖先,那么 Git 会执行快进合并,直接将 main 分支的指针移动到 feature 分支的最新提交位置。

# 2. 非快进合并 (No Fast-Forward Merge)

如果你希望在合并时强制生成一个新的提交记录,即使可以进行快进合并,可以使用 --no-ff 选项。这样可以保留分支的历史记录,方便后续追踪。

步骤:

  1. 切换到目标分支:

    git checkout main
    
    1
  2. 合并源分支,并生成一个新的提交记录:

    ⚠️注意:使用此命令时,【暂存区域】不能有文件,即所有修改需先提交,否则会执行失败

    git merge --no-ff feature
    
    1

idea 终端窗口执行时,会自动生成一个新的提交记录,键入 :wq + 回车 即可。

# 自定义合并提交信息

在使用 git merge --no-ff 命令时,Git 会默认为你生成一条合并提交信息。不过,你也可以在合并时提供自定义的提交信息。要实现这一点,可以使用 --message 或 -m 选项。

# 示例

假设你有一个 main 分支和一个 dev 分支,你希望将 dev 分支的更改合并到 main 分支,并生成一个新的提交记录,同时提供自定义的提交信息。

  1. 切换到 main 分支:

    git checkout main
    
    1
  2. 合并 dev 分支,并提供自定义的提交信息:

    git merge --no-ff -m "Merge dev into main with custom message" dev
    
    1

# 3. 解决合并冲突

当两个分支都对同一个文件的同一部分进行了修改时,Git 无法自动解决冲突,需要手动解决。

步骤:

  1. 切换到目标分支:
    git checkout main
    
    1
  2. 尝试合并源分支:
    git merge feature
    
    1

如果出现冲突,Git 会在冲突文件中标记出冲突的部分。你需要手动编辑这些文件,选择保留或修改冲突的内容。

  1. 解决冲突后,将文件标记为已解决:
    git add <conflicted-file>
    
    1
  2. 完成合并:
    git commit
    
    1

# 4. 拉取并合并远程分支

当你从远程仓库拉取并合并分支时,可以使用 git pull 命令,它实际上是 git fetch 和 git merge 的组合。

步骤:

  1. 切换到目标分支:
    git checkout main
    
    1
  2. 拉取并合并远程分支:
    git pull origin feature
    
    1

# 5. 三方合并 (Three-Way Merge)

在非快进合并中,Git 会使用三方合并策略。三方合并涉及三个不同的提交:

  • 基础提交 (Base Commit):两个分支的最近共同祖先。
  • 当前分支的最新提交 (HEAD)。
  • 要合并的分支的最新提交。

Git 会比较这三个提交,生成一个新的合并提交。

上次更新: 2024/11/21 18:18:30
git提交规范
git常用操作

← git提交规范 git常用操作→

Theme by Vdoing | Copyright © 2023-2025 沉梦听雨 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式