当前位置: 首页 > 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.xdnf.cn/news/1269037.html

相关文章:

  • 2025年TOP5服装类跟单软件推荐榜单
  • MoVA:多模态视觉专家混合架构的创新设计与应用实践
  • Ubuntu22.04 安装vitis2023.2 卡在“Generating installed device list“.
  • 从反射到方法句柄:深入探索Java动态编程的终极解决方案
  • 机器翻译正则化技术详解:防止过拟合的有效方法
  • Go语言实战案例:文件上传服务
  • 分析报告:基于字节连续匹配技术的KV缓存共享实施可能性及其扩展
  • Leetcode——556. 下一个更大元素 III
  • Kotlin反射详解
  • Docker大全
  • Linux之shell脚本篇(四)
  • 简单聊聊PowerShell
  • 使用 Prometheus+cAdvisor 监控 Docker 容器指标
  • 算法_python_学习记录_01
  • Docker多阶段构建及适用镜像推荐
  • 软件工程总体设计:从抽象到具体的系统构建之道
  • WinForm 复合控件(用户控件):创建与使用指南
  • 10. 怎么实现深拷贝?
  • 【n8n】学习n8n【10】:Github的项目n8n-workflows:本地安装2,053 个 n8n 工作流程集合:随时看随时抄/学习~
  • 嵌入式 - Linux软件编程
  • 基于 RAUC 的 Jetson OTA 升级全攻略
  • 【文献阅读】我国生态问题鉴定与国土空间生态保护修复方向
  • 本地部署接入 whisper + ollama qwen3:14b 总结字幕
  • 【R语言】单细胞数据整合质量评估(3)
  • 初学python的我开始Leetcode题15-2
  • 【Python 工具人快餐 · 第 2 份】
  • TensorFlow深度学习实战(29)——强化学习(Reinforcement learning,RL)
  • Android 开发问题:The specified child already has a parent.
  • Visual Studio Code (v1.103) 中 GitHub Copilot 最新更新!
  • LLM表征的提取方式