Git系列:git merge 使用技巧


在这里插入图片描述
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
在这里插入图片描述

  • 推荐:「stormsha的主页」👈,持续学习,不断总结,共同进步,为了踏实,做好当下事儿~
  • 专栏导航
    • Python面试合集系列:Python面试题合集,剑指大厂
    • GO基础学习笔记系列:记录博主学习GO语言的笔记,该笔记专栏尽量写的试用所有入门GO语言的初学者
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 运维系列:总结好用的命令,高效开发
    • 算法与数据结构系列:总结数据结构和算法,不同类型针对性训练,提升编程思维

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

💖The Start💖点点关注,收藏不迷路💖

📒文章目录

  • Git Merge 技巧:高效合并代码的艺术
    • 1. 理解 Git Merge 的基础
      • 1.1 快进合并(Fast-forward Merge)
      • 1.2 三方合并(Three-way Merge)
    • 2. 使用 `--no-ff` 选项
    • 3. 合并策略
      • 3.1 策略选项
    • 4. 处理合并冲突
      • 4.1 使用图形化工具
      • 4.2 手动解决冲突
    • 5. 合并多个分支
    • 6. 保持历史清洁
      • 6.1 使用 `rebase`
      • 6.2 压缩小的提交
    • 7. 使用 `ours` 或 `theirs` 解决冲突
    • 8. 避免合并提交
    • 结语


在这里插入图片描述

Git Merge 技巧:高效合并代码的艺术

在软件开发中,git merge 是一个常用的命令,用于将不同的代码分支合并在一起。掌握一些高级的合并技巧,可以帮助开发者更高效地进行代码整合。以下是一些中高级的 git merge 使用技巧,旨在帮助开发者提升代码合并的效率和质量。

git merge 命令的参数包括:

  • --no-ff: 当合并时创建一个新的合并提交,即使当前分支是快进合并。
  • --squash: 将所有合并的提交压缩成一个单一的提交。
  • --strategy: 指定合并策略,如 recursive(递归,默认策略)、resolve(解决)、octopus(八爪鱼,用于多分支合并)。
  • --ours: 使用当前分支的版本,忽略其他分支的更改。
  • --theirs: 使用被合并分支的版本,忽略当前分支的更改。
  • --abort: 中止一个正在进行的合并过程。
  • --continue: 在解决冲突后继续合并过程。
  • -m <message>: 为创建的合并提交指定提交信息。
  • --no-edit: 不编辑合并提交信息,使用默认信息。
  • --no-commit: 不创建合并提交,将更改放在暂存区和工作目录中。
  • --quiet: 减少命令输出的详细程度。

1. 理解 Git Merge 的基础

在深入技巧之前,理解 git merge 的基础是必要的。git merge 命令用于将两个或多个开发历史合并在一起。

1.1 快进合并(Fast-forward Merge)

当两个分支的提交历史是线性的时候,Git 可以执行快进合并,即直接将一个分支的指针移动到另一个分支的顶部。

1.2 三方合并(Three-way Merge)

当两个分支有共同的祖先,但是已经分叉了一段时间,Git 会创建一个新的“合并提交”(merge commit),它有多个父提交,分别指向两个分支的末端。

2. 使用 --no-ff 选项

在默认情况下,如果合并可以执行快进,Git 会这样做。但是,有时候我们希望即使在快进合并的情况下也创建一个新的合并提交。这时可以使用 --no-ff 选项。

git merge --no-ff branch-name

3. 合并策略

Git 提供了不同的合并策略,可以通过 -c--config 选项来设置。

3.1 策略选项

  • resolve:当有冲突时,尝试自动解决。
  • recursive:默认策略,适用于大多数情况。
  • octopus:允许同时合并多个分支。
git merge -c strategy-name branch-name

4. 处理合并冲突

合并冲突是合并过程中常见的问题,以下是一些处理冲突的技巧。

4.1 使用图形化工具

使用图形化的合并工具可以更直观地查看和解决冲突。

git mergetool

4.2 手动解决冲突

有时候,手动编辑冲突的文件并解决冲突是必要的。解决后,需要标记文件为已解决。

git add resolved-file

5. 合并多个分支

有时需要将多个分支的更改合并到一个分支中。可以使用 git merge 的多次合并。

git merge branch1 branch2 branch3

6. 保持历史清洁

在合并之前,确保分支历史是清洁的,可以提高合并的效率。

6.1 使用 rebase

git rebase 可以重新定位一系列提交,使其在另一个分支的顶部。

git rebase main feature-branch

6.2 压缩小的提交

使用 git rebase -i 可以交互式地重写提交历史,合并小的提交,使历史更加清晰。

git rebase -i HEAD~N

7. 使用 ourstheirs 解决冲突

在某些情况下,你可能希望在冲突中优先使用某一方的更改。

git checkout --ours file-with-conflict

或者

git checkout --theirs file-with-conflict

8. 避免合并提交

在某些情况下,你可能不希望在合并时创建一个新的合并提交。

git merge --squash branch-name

这将把所有的更改合并到一个单一的提交中。

结语

掌握 git merge 的高级技巧对于任何开发者来说都是一项宝贵的技能。通过上述的技巧,你可以更高效地合并代码,减少合并冲突,保持项目历史的清晰。记住,实践是学习的最佳方式,所以不要害怕尝试不同的方法,找到最适合你的工作流程。


❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏、分享下吧,非常感谢!👍 👍 👍

🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

💖The End💖点点关注,收藏不迷路💖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/833499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产品评测:SmartX 与 Nutanix 超融合在数据库场景下的性能表现

重点内容 SmartX 与 Nutanix 超融合分布式存储设计差异如何影响数据库性能表现。重点测试结论&#xff1a;数据库场景下&#xff0c;SmartX 超融合基于单卷部署的性能&#xff0c;依旧优于 Nutanix 超融合基于多卷部署最佳配置的性能。更多 SmartX、VMware、Nutanix 超融合技术…

50kw 直流充电桩测试仪的基础知识

直流充电桩测试仪是专门用于检测和测试直流充电桩性能的设备。它能够对充电桩的输出电压、电流、功率、效率等关键参数进行精确测量&#xff0c;以确保充电桩的正常运行和充电安全。 一、工作原理 直流充电桩测试仪主要通过模拟实际充电过程&#xff0c;对充电桩的各项性能进行…

测试台架设计与制作

技术改变生活&#xff0c;懒人推动科技。人们在执行整车测试时&#xff0c;诸多不便&#xff0c;那如何提高测试效率、改善人员测试环境&#xff0c;各个汽车生态的设计者就为之费神。以CarPlay为例&#xff0c;从2013年的送整车去美国测试&#xff0c;发展到如今所有测试均可在…

2024年,抖音小店开通需要多少钱?一篇详解!

大家好&#xff0c;我是电商糖果 2024年了&#xff0c;想在抖音开店卖货的朋友越来越多。 主要原因还是看到&#xff0c;这几年在抖音上赚到钱的人越来越多。 于是大家在今年比较关心的问题&#xff0c;就是抖音小店开通需要多少钱&#xff1f; 糖果做抖音小店四年了&#…

ESP32S3各个管脚使用需要注意的情况说明:

想使用ESP32S3做个控制电路&#xff0c;管脚使用情况自己整理了一下&#xff0c;记录一下&#xff0c;免得后面又忘记了&#xff0c;有不对之处望帮助更正&#xff1a; IO0和IO46先要说明一下&#xff1a;以前只注意IO0是启动刷机的时候用的&#xff0c;低电平时启动是串口刷机…

如何查看打包后的jar包启动方法

背景 有时候我们在引用一个jar包的时候,想查看一个jar包的结构,这时候查看启动类就比较重要,因为一些关键配置是在启动类上的,这里教大家如何查看这个启动类(springboot项目) 步骤 首先打开jar包预览结构,可以使用解压缩工具直接双击打开或者预览结构 打开路径 META-INF/MA…

使用公有云主机部署ftp服务被动模式(centos操作系统)

文章目录 前言一、FTP服务搭建1.1 部署服务1.2 修改配置文件1.3 重启服务1.3 配置项解答 二、安全组设置访问规则2.1配置监听端口2.2 配置数据端口三、使用ftp登陆工具测试3.1 使用工具进行测试 总结 前言 使用公有云上的云主机搭建FTP服务器。 步骤思路&#xff1a; 1、云主机…

java将图片转为pdf

效果图 直接上代码 1.引入jar <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</version></dependency> 2.测试类 package pers.wwz.study.img2pdf20240507;import org.a…

scitb5函数2.1版本(交互效应函数P for interaction)发布----用于一键生成交互效应表、森林图

写在前面的话&#xff0c;此函数不适用于NHANES数据&#xff0c;也不能用于COX回归,请注意甄别。 在SCI文章中&#xff0c;交互效应表格&#xff08;通常是表五&#xff09;几乎是高分SCI必有。因为增加了亚组人群分析&#xff0c;增加了文章的可信度&#xff0c;能为文章锦上添…

电脑文件批量重命名不求人:快速操作,高效技巧让你轻松搞定

在数字化时代&#xff0c;电脑文件的管理与整理显得尤为重要。当面对大量需要重命名的文件时&#xff0c;一个个手动修改不仅耗时&#xff0c;还容易出错。那么&#xff0c;有没有一种方法可以快速、高效地完成这一任务呢&#xff1f;答案是肯定的&#xff0c;下面就来介绍几种…

盘点一下近年来常用的电脑监控软件

企业电脑监控软件通常用于监视员工在工作时间内的电脑使用情况&#xff0c;以确保他们的工作效率和安全性。以下是几种常见的企业电脑监控软件&#xff1a; 1、Ping32 Ping32是一款集成多功能的企业级电脑监控软件&#xff0c;包括员工上网行为管理、文件外发审计、屏幕活动监…

(41)5.6-5.7数据结构(栈和队列的应用)

1.栈在括号匹配中的应用 #define _CRT_SECURE_NO_WARNINGS #define MaxSize 10 typedef struct { char data[MaxSize];//静态数组存放栈中元素 int top; //栈顶指针 }SqStack;//初始化栈 void InitStack(SqStack& S);//判断栈是否为空 bool StackEmpty(SqStack S…

MFC DLL注入失败一些错误总结

使用cheat Engine为MFC窗口程序注入DLL时一定要注意&#xff0c;被注入的exe程序和注入的DLL 的绝对路径中一定不要带有中文字符&#xff0c;否则会遇到各种各样的奇怪错误&#xff0c;如下所示&#xff1a; 以下是dll绝对路径中均含有中文字符&#xff0c;会报错误&#xff…

C++ | Leetcode C++题解之第76题最小覆盖子串

题目&#xff1a; 题解&#xff1a; class Solution { public:unordered_map <char, int> ori, cnt;bool check() {for (const auto &p: ori) {if (cnt[p.first] < p.second) {return false;}}return true;}string minWindow(string s, string t) {for (const au…

翔云优配正规炒股美股市场秒速涨停!主力疯狂加仓,板块掀涨停潮

查查配今日,A股整体微幅震荡,主要股指涨跌互现,上证指数小幅飘红再创年内新高,创业板指和科创50则小幅调整,两市成交跌破万亿元。盘面上,国防军工、化工、低空经济、房地产等板块涨幅居前,ST、电力、酒店餐饮、家用电器等板块跌幅居前。 翔云优配以其专业的服务和较低的管理费…

社交媒体数据恢复:度小视

度小视&#xff0c;原名全民小视频&#xff0c;现已更名为百家号&#xff0c;是百度在线网络技术(北京)有限公司旗下的一款手机短视频类应用软件。在使用过程中&#xff0c;如果遇到社交软件数据丢失的问题&#xff0c;可以通过以下步骤尝试恢复。 首先&#xff0c;在备份数据…

证券基金信创联盟研讨会:YashanDB分享金融核心数据库技术实践

4月26日&#xff0c;由证券基金行业信息技术应用创新联盟主办、WG3稽核风控系统工作组承办、国信证券股份有限公司协办的信创联盟2024年度系列研讨会第三期-稽核风控系统信创实践成功举办。国内头部企业国信证券、申万宏源证券、信达证券、国金证券、广发证券等单位共计300余人…

前端 | 自定义电子木鱼

文章目录 &#x1f4da;实现效果&#x1f4da;模块实现解析&#x1f407;html&#x1f407;css&#x1f407;javascript &#x1f4da;实现效果 &#x1f4da;模块实现解析 &#x1f407;html 搭个框架<!DOCTYPE html> <html lang"en"> <head>&l…

AI无人自动实景直播系统,挑战高效 实时 智能 全新的直播方式

随着科技的不断发展&#xff0c;人工智能&#xff08;AI&#xff09;已经涉足并改变了各个行业&#xff0c;直播领域也不例外。传统的直播方式依赖于真人主持和人工操作&#xff0c;而现在&#xff0c;AI无人自动实景直播系统的出现&#xff0c;正在挑战着传统直播的方式&#…

35道必懂的 Linux 运维面试题

1、现在给你三百台服务器&#xff0c;你怎么对他们进行管理&#xff1f; 管理3百台服务器的方式&#xff1a; 1&#xff09;设定跳板机&#xff0c;使用统一账号登录&#xff0c;便于安全与登录的考量。 2&#xff09;使用 salt、ansiable、puppet 进行系统的统一调度与配置的…