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

【Git】Visual Studio 实现合并分支

前言

在日常开发中,我们经常需要将 主分支(master/main) 的更新同步到其他分支,或者将功能分支的代码合并回主分支。在 Visual Studio 中,我们可以通过内置的 Git 工具方便地完成这一操作。

本文将介绍如何在 Visual Studio 中进行分支合并,并简要说明 Merge 与 Rebase 的区别和使用场景。

目前我找个工程有两个分支,一个是主分支,master,另一个是基本主分支建立的功能分支。
在这里插入图片描述
这个截图是 Visual Studio 中 Git 分支管理的上下文菜单,目前是在 master 分支 上,菜单里的几个选项含义如下:

2. 切换到目标分支

假设我们现在需要将 master 分支的更新合并到 feature 分支:

  1. 先确保你切换到了 feature 分支(目标分支)。
  2. 这样做是为了让接下来的操作“把 master 的更新合并到当前分支”。

在分支列表中,双击 feature,或右键选择 签出(Checkout)

**签出(Checkout)**意思是“切换到这个分支”。

如果你现在在别的分支上,点击这个会让 Git 切换到 master 分支,并将工作区文件更新到 master 对应的状态。如果你已经在 master 上,这个选项通常会是灰色不可用的。

3. 执行合并(Merge)

在分支管理面板中:

  1. 找到 master 分支。

  2. 右键选择 合并到 Current Branch

    注意:Current Branch 是你当前签出的分支,这里就是 feature

  3. Visual Studio 会执行 git merge master 操作,将 master 的改动合并到 feature

  4. 如果出现冲突,VS 会在 Git 更改 面板中提示你,并提供冲突解决工具。


4. 使用变基(Rebase)

有时我们希望历史记录更整洁,可以选择 变基

  1. 切换到 feature 分支。
  2. 在分支面板中右键 master将 Current Branch 的基准重定到
  3. 这相当于执行 git rebase master,会把 feature 分支的提交“搬运”到 master 最新提交之后。
  4. 同样,如果有冲突,需要手动解决并继续变基。

5. Merge 与 Rebase 的区别

对比项Merge(合并)Rebase(变基)
历史结构保留分叉与合并记录变为线性历史
提交记录生成一个新的合并提交改写提交历史
适用场景团队协作,保留历史背景个人分支,保持历史整洁
是否改写历史

6. 实战 Merge

在这里插入图片描述
比如我想把功能分支(融合yolo版)合并到主分支(master)。
就如下三个步骤:
1 首先签出到功能分支(融合yolo版)
2 然后选择主分支(master)并点击右键。
3 最后从右键菜单中,选择合并到 Current Branch(M) (这里的Current Branch(M)就指的是第二个步骤中选择的master主分支,其次,(M)表示的就是Merge)


6. 小结

  • 在 Visual Studio 中,合并到 Current Branch 适合日常团队协作,安全且保留历史。
  • 将 Current Branch 的基准重定到 适合你自己维护的分支,让历史记录更干净。
  • 操作前务必确认当前所在分支,避免把代码合错方向。

💡 建议:如果你刚接触 Git,先从 Merge 开始使用,等熟悉命令和冲突解决后,再尝试 Rebase。


http://www.lryc.cn/news/615331.html

相关文章:

  • Alibaba Cloud Linux 3 安装 git
  • DigitalProductId解密算法php调试版piddebug.php
  • n8n飞书webhook配置(飞书机器人、飞书bot、feishu bot)Crypto节点、js timestamp代码、Crypto node
  • AG32cpld实现一个UartTx“外设”
  • Kafka服务端NIO操作原理解析(二)
  • Arm Development Studio 安全通告:CVE-2025-7427
  • 人脸情绪检测数据集-9,400 张图片 智能客服系统 在线教育平台 心理健康监测 人机交互优化 市场研究与广告 安全监控系统
  • 【面试题】cookie和session 的区别
  • 【26】C#实战篇—— 多个线程函数对同一个 Excel 文件进行写操作引起的文件冲突问题,解决方法
  • Playwright C# 自动登录并上传 Excel 文件 的可运行示例
  • Irix HDR Pro:专业级 HDR 图像处理软件
  • Docker部署whisper转写模型
  • Java中Lambda表达式的常见用法和解析:从入门到实战
  • C/C++基础详解(二)
  • 【51单片机4按键启动停止向上向下流水灯】2022-10-26
  • 本文章分享一个本地录音和实时传输录音给app的功能(杰理)
  • 【c++】探秘Loop机制:C++中优雅的双向数据交互模式
  • Ubuntu下安全彻底删除后端服务完整指南
  • 网络原理-初识
  • PNPM总结
  • QT第一讲- Qt初探
  • Microsoft Office Visio(流程图)学习笔记
  • 使用SymPy lambdify处理齐次矩阵的高效向量化计算
  • 动手学深度学习(pytorch版):第二章节——预备知识(1)——数据操作
  • 2025华数杯数学建模C题:可调控生物节律LED光源全解析
  • 理解协议最大传输单元(MTU)和TCP 最大报文段长度(MSS)
  • 自动生成视频的AI大模型高效创作指南
  • 掌握数据可视化:全局配置项详解
  • Nginx 反向代理与负载均衡架构
  • Redhat Linux 9.6 配置本地 yum 源