Git合并代码到线上分支

Git分支合并终极大法,让你看完本篇学会所有场景下的代码合并 git分支合并终极大法,看完本篇你讲学会所有场景下的代码合并,最快只需要三行代码即可完成合并 阅读详情

1.背景介绍

为何要写这样一篇

大多数开发在工作之初应该都经历过这样一段,在开发完一个需求,走完测试,预发流程需要上线的时候,会被前辈提醒,线上环境的影响面,合并代码的时候要特别小心,不要出错;上线的流程一般有一个灰度,和正式的步骤,这两个环境涉及到两个分支,往往因为多人的参与,代码提交记录具有不小的差异性;外加生产环境,正式流量,服务稳定性,故障复盘...这些名词的加持下,导致新人对这个环节更加紧张了,可能对本来自己开发时随便使用的方式都不太自信了。

这个问题最好的方式是通过进一步了解git的相关知识之后,无论面对什么样场景合并代码都没有压力。当然这样的话,需要花的时间更多,往往我们需要查这些相关问题的解决办法的时候,就是临近上线的时候,没有那么多时间去做了解;下面是总结的一套快速上手代码合并的方法。

2.将自己的代码合并入线上分支

一般情况下,线上分支有两个 灰度 和正式分支。流程规范的情况下,分支出现不一致,往往master分支是落后于灰度分支的。也有少数情况出现正式领先的情况(bug fix之类的),为了不出现因为合并了别人的代码,遇上环境不一致的场景导致线上问题,给自己本次需求带来额外的工作量,最好的办法就是:

将灰度和正式分支单独看待和合并处理,不做交叉的处理。记住一点,你上线的目的是为了让你的代码上线,不管是灰度的小流量,还是正式的全量,不同的环节,将自己的代码合并到对应的分支上就行。

2.1.将自己的代码合并入灰度分支的步骤

1、将分支切换到gray分支

git checkout 【gray_branch】

2、更新最新gray分支,保持本地gray分支代码与远端保持一致

git pull

3、接下来有两种方式合并代码

a、直接合并入gray分支,有冲突解决冲突,若冲突不好解决想放弃,也可放弃本次合并

git merge 【dev_branch】

b、若是对a类方法合并有所顾虑,担心解决冲突有问题,影响到线上分支,可以在本地基于自己的开发分支复制一个分支,将gray分支合并到这个复制分支----目的是 不要污染本地开发分支,确保自己的开发分支只有自己的代码----(当然也可以选择copy gray分支用来合并入自己的代码),再将解决完冲突的代码合并到gray分支。

git checkout 【dev_branch】

git checkout -b 【dev_branch_copy】/ git switch -c 【dev_branch_copy】

git merge 【gray_branch】

git checkout 【gray_branch】

git merge 【dev_branch_copy】

2.2将自己的代码合并入线上分支

和合并入gray分支的步骤一样,需要注意的是,如果合并入gray分支的步骤3采取的是copy本地开发分支的方式,这儿也需要基于原开发分支copy一个新的分支来操作。

3.将合并后的代码推送到远端

若需要进行code review ,使用下面的命令,触发cr单链接

git push origin 【local_branch】:refs/for/【remote_branch】

与上面命令相对的不需要进行code review的一个命令

git push origin 【local_branch】:refs/heads/【remote_branch】

该命令的简写就是最常用的 git push

git push 是省略了git push origin 【local_branch】:【remote_branch】

【remote_branch】在git配置里往往是 /refs/heads/【remote_branch】

如 /refs/heads/master。

4.若在合并代码的时候遇见不好解决的冲突,想放弃本次合并

若是使用git merge方式,放弃合并使用

git merge --abort

若是使用git rebase方式,放弃合并使用

git rebase --abort

5.一些问题解答

若没有以下问题,本小节可跳过。

5.1.关于gray分支领先master分支版本,或者master分支领先gray(少数情况bug fix之类)带来的合并代码困难

将灰度和正式环境单独看待,上灰,合并代码的目标就是将自己的代码合并到灰度分支;全量正式,就是将自己代码合并到正式分支。各个环节(灰度,全量)合并到对应的分支。

对于master领先的情况,又需要将master的代码同步到灰度,个人感觉优雅一点的做法是将master rebase到开发分支,然后再将开发分支merge到gray分支上

5.2.合并代码的场景方式列举

只做列举,不详细展开,感兴趣可去查对应的相关命令使用文档

i.合并特定的提交到当前分支

cherry-pick 【commit_id】

ii.合并特定的文件到当前分支

git checkout --patch 【source_branch】【file_name】

iii.合并特定分支

git merge 【source_branch】

git rebase 【source_branch】

5.3.git merge和git rebase的区别

git merge是无论【source_branch】做了多少commit,合并之后只会在当前分支形成一个新的commit。

merge本质是将两分支共同祖先节点之后【source_branch】的改动合并成一个提交到当前分支

git rebase是在【source_branch】和当前分支的共同祖先节点之后放入【source_branch】的所有commit,然后再将当前分支的commit放在这之后。

git创建与合并分支 HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。 阅读详情

相关推荐

GitHubDesktop:学习:三:(第一次操作)GitHubDesktop进行创建分支+合并分支:成功

目录 一、目的 1.想知道:GitHubDesktop进行创建分支 1.想知道:GitHubDesktop进行合并分支 二、参考 1.0基础的git教程,傻瓜都会用的Github Desktop 三、总结(将操作中的总结写到这里,方便增加印象) 1.选择:choose a branch to merge into main:(当前处于main分支,永远都是把其他分支merge到当前!) ,然后选择一个分支,就是我们的testBranch 四、操作:成功:创建+合并分支 1.版本 1.

qq_40544338的博客 5613

在Git中合并代码的几种方式

git合并代码的几种方式,merge、rebase、cherry-pick、squash、no-commit merge

u010992421的专栏 1万+

Nengo神经工程框架:脉冲神经网络的实时编译与硬件部署

脉冲神经网络(SNN)作为类脑计算的核心范式,正从生物模拟走向工程落地。其本质是用离散脉冲建模神经动力学,关键在于实现可预测、可复现的神经行为而非单纯拟合函数。Nengo基于神经工程学框架(NEF),将动态系统理论与硬件约束深度融合,通过解析式权重计算、确定性时间步长(dt)和多后端编译能力,支撑从CPU仿真到Loihi/FPGA的端到端部署。它不替代深度学习框架,而是提供面向神经形态芯片的‘神经编译器’能力,使LIF神经元参数、突触动力学与硬件时序严格对齐,显著提升实时性、能效比与物理可解释性。

weixin_32533659的博客 638

git合并代码

git合并代码,git常用命令,git取消合并

zzll1216的博客 1万+

libfranka---joint_impendence_control例程分析

joint_impedance_control.cpp例程分析 部分内容来自链接,我个人以初学者的角度对代码进行了更加细致的解释。 核心部分: // Set and initialize trajectory parameters. const double radius = 0.05; const double vel_max = 0.25; const double acceleration_time = 2.0; const double run_time = 20.0; d

weixin_41567783的博客 1121

DC综合中set_dft_signal的实战配置与优化策略

本文深入解析了DC综合中set_dft_signal命令的实战配置与优化策略。文章从命令的核心作用出发,详细拆解了-view、-type、-usage等关键参数,并通过扫描使能与时钟门控的实战案例,展示了如何正确配置以实现测试模式下的功耗优化。同时,文章总结了高级优化策略、与低功耗流程的协同方法以及常见错误排查清单,旨在帮助数字芯片设计工程师构建高可测性、低功耗的稳健DFT基础。

weixin_28347369的博客 403

轻松上手git代码版本管理工具--协同开发-冲突解决、线上分支合并以及使用pycharm操作git

---------------------------------------------以上操作可能是你领导做好了----------------------------------------------在线上完成dev合并到master---->提交一个pull request(pr)忽然发现有bug---->新建一个bug分支(基于master分支建立bug分支)新功能开发完了---->要合并到master分支---->v1.2。4.测试,领导要审查代码---->代码review。

摘 月 901

ffmpeg(一) ffmpeg+QT开发环境搭建

(exe 程序编译的时候只需要包含 xxx.dll.a 静态导入库,运行的时候才需要 xxx.dll 文件)这个 .pro 文件的配置,是指导程序编译的时候,可以找到对应的动态库。值得一提的是,在Windows中,静态链接库(Static Link Library)的扩展名也是.lib、.dll.a。其实只要你掌握了FFmpeg,也可以很快上手其他音视频开发库,因为底层原理都是一样的,你最终操作的都是一样的数据,比如MP3、MP4文件。导入库:不包含函数的具体实现代码(函数的具体实现代码存储在dll中)

小道士写程序 8204

git 怎么拉取线上代码到本地进行合并_git命令行拉取远程分支代码,并合并后上传到自己的分支...

1. git add . //把当前所有修改添加到本地仓库2. git commit -m "提交备注信息" //把当前添加到仓库的修改提交到本地仓库(这里说一下两者的区别,第一个是你仅仅把一些修改添加到本地仓库,并没有生...

weixin_34582773的博客 1013

高温环境下RS485通信故障分析与MOS管解决方案

RS485通信作为工业控制领域的基础总线技术,其可靠性直接影响系统稳定性。在高温等恶劣环境下,传统三极管开关电路会因温度特性导致通信故障。通过分析三极管Ube电压随温度变化的特性,揭示了电路失效的物理原理。相比之下,MOS管作为电压控制型器件,具有温度稳定性好、功耗低等优势,更适合工业环境应用。本文通过一个发动机舱内RS485通信故障的实际案例,详细对比了三极管与MOS管在高温环境下的性能差异,并给出了具体的电路改进方案。该案例对工业通信接口设计具有普遍参考价值,特别适用于需要应对高温、振动等挑战性环境的硬

weixin_42612405的博客 406

Cadence SKILL 语言实战指南:从函数列表到高效自动化脚本

本文是Cadence SKILL语言实战指南,旨在帮助芯片设计工程师从掌握核心函数列表出发,高效构建自动化脚本。文章详细解析了数据处理、数据库访问、流程控制及错误处理四类关键函数,并通过版图层批量修改与参数化单元生成两大实战场景,演示如何将函数组合成解决实际问题的自动化方案,从而显著提升Virtuoso环境下的工作效率。

beta5的博客 706

git 怎么拉取线上代码到本地进行合并_Git多分支开发实践

现在很多项目开发过程中,都用到git来进行版本管理。git适用于采用的是迭代方式所开发的项目、开发过程中产生多个版本的情况。master 版本是用于投生产后的版本,只有一个;feature分支是一个迭代结束后形成的,只有一个;develop是项目平时开发共用的分支,只有一个;个人分支是每个人开发当前需求中分支,根据需求产生多个。那这些分支怎么来协作?如何保证多人代码有序开发,这就是本文阐...

weixin_39689347的博客 1460

国产FPGA高云GW1NSR-4C,集成ARM Cortex-M3硬核

从板子整体角度来看,这是一款国产化程度很高的板子,从主控FPGA,到JTAG芯片,存储芯片、电源芯片等,都是使用的国产半导体公司的产品。板子整体尺寸也比较迷你,属于小而美类型的,可以认为是一款FPGA核心板,当然也预留了排针接口,给用户足够的扩展空间。对于想了解高云小蜜蜂SoC软硬件开发,以及对云源软件、MCU开发环境做个深度评测来说足够了。JTAG调试器固件可以增加虚拟串口功能,对于板子本来来说面积不会有改动,只需要添加两根信号线即可。

whik1194的博客 6399

3-Git-线上分支合并、远程仓库回滚、为开源项目贡献代码、git工作流,(git pull和git fetch,变基)、pycharm操作git(克隆代码、提交到暂存区,提交到版本库,推送到远程)

线上分支合并、远程仓库回滚、为开源项目贡献代码、git工作流,(git pull和git fetch,变基)、pycharm操作git(克隆代码、提交到暂存区,提交到版本库,推送到远程)

linjun的博客 231

【大模型应用开发-FastAPI框架】(八)Sqlalchemy+postgresql简单增删改查

语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。SQLAlchemy的理念是,的量级和性能重要于对象集合;而对象集合的抽象又重要于表和行。因此,SQLAlchemy采用了类似于。社区中成为广泛使用的ORM工具之一,不亚于Django的ORM框架。和declarative等可选插件可以让用户使用声明语法。SQLAlchemy首次发行于2006年2月,并迅速地在。SQLAlchemy“采用简单的。二、安装postgresql。一、SQLAlchemy简介。的数据映射模型,而不是其他。

2098

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

git 怎么拉取线上代码到本地进行合并_Git拉取远程最新代码,并与当前分支合并...

在团队开发中,git的使用已经很常见了,在多人协同开发中,我们经常会遇到这样的问题:A在本地开发完成后,将代码推送到远程,这时候B的本地代码的版本就低于远程代码的版本,这时候B该如何从远程拉取最新的代码,并与自己的本地代码合并呢? 具体步骤如下:1. 查看远程仓库:git remote -v2. 比如 在步骤一中,我们查看到远程有一个叫origin的仓库,我们可以使用如下命令从origin远程仓库...

weixin_31496135的博客 1529

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

git 怎么拉取线上代码到本地进行合并_获取最新代码到本地,并自动合并到当前分支...

//查看当前远程的版本$ git remote -v//获取最新代码到本地临时分支(本地当前分支为[branch],获取的远端的分支为[origin/branch])$ git fetch origin master:master1 [示例1:在本地建立master1分支,并下载远端的origin/master分支到master1分支中]$ git fetch origin dev:dcb1[示...

weixin_35755188的博客 2698

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

git联合线上仓库使用

结合线上仓库学会git

youm2003的博客 1285

git分支的创建和合并

git的分支创建和合并操作 1.开发过程中,需要临时修补先上版本bug,为了防止本地开发版本和先上版本冲突,以及更方便的修补线上版本bug,需要通过新建线上版本的临时分支来修复,修复完成后直接将临时分支合并到线上版本即可,可完美避开不影响到本地正在开发的版本. 具体操作看下方链接: 点此跳转 ...

xdblv的博客 426

git如何新建分支进行开发

在真正的企业级别开发过程中,每开发一个新功能是需要创建一个新的git分支的,然后在新分支上进行开发,当开发完成之后,需要把代码合并到master主分支上,我们这里要开发一个首页轮播图的功能。 1.点击新建分支 2.这时只是在线上新建了这个分支,所以需要把线上分支拉到本地来 首先通过终端进入到本地项目目录下,运行git pull 这时就会把线上的分支拉到本地上来,接着再运行git checkou...

weixin_43026567的博客 1万+

git---线上分支合并/远程仓库回滚/为开源项目贡献代码/git工作流,git pull和git fetch,变基/pycharm操作git

【代码】git---线上分支合并/远程仓库回滚/为开源项目贡献代码/git工作流,git pull和git fetch,变基/pycharm操作git。

python_web全栈 299

Git smartgit gitlab 合并的坑

本地分支:382-issue-jesse A 本地、线上分支,测试的总合分支:unified_test_jesse B 线上源分支:php_xxx_develop C 本地分支:383-issue-jesse D   原来A合并到B测试了。 然后不小心,要改A的代码,结果在B上面

少点星@专栏 4417

git多人参与的项目 -> 分支代码如何合并到主干

个人理解:合并分支时候就是当前分支,与别的分支先合并一遍,然后解决分支中存在的所有冲突,之后将本地分支代码提交到git远程仓库,之后切换主干分支 ,将主干分支与分支内容合并,解决冲突, 在提交主干分支内容,最后push主干分支内容到远程仓库 以下是我参考的内容    git分支开发,分支(feature)同步主干(master)代码,以及最终分支合并到主干的操作流程 由于rebase执行速度...

神言如殇的博客 4793

Git合并指定Commit到当前分支

sadf

yinxiang_mine的博客 1161

git远程分支管理

master分支是非常重要的,线上发布代码用这个分支,平时我们开发代码不要在这个分支上 创建一个dev分支,专门用作开发,只有当发布到线上之前,才会把dev分支合并到master 开发人员应该在dev的基础上再分支成个人分支,个人分支里面开发代码,然后合并到dev分支 ...

sharmir的博客 317
上一篇: Golang开发小记(持续更新)
bit_bit
博客等级 码龄7年 7粉丝 5原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值