【Git篇 二】idea中使用git合并分支(拉取分支)

idea中使用git合并分支

  • 前言
  • idea使用git合并分支
    • 1) 将主分支(master)更新到自己的分支(dev)
      • ① checkout到自己分支
      • ② 目标分支(dev)更新到当前分支(dev_KC240524
      • ③ 当前分支出现“绿色”箭头提示(push)
    • 2) 将自己的分支(dev)合并到主分支(master)
  • 延申内容: Merge和Rebase的对比以及使用建议
    • 1. merge和rebase的提交历史差异
    • 2. Merge和Rebase的对比以及使用建议

前言

本文来说下idea中使用git合并分支

idea使用git合并分支

1) 将主分支(master)更新到自己的分支(dev)

将主分支(master)更新到自己的分支(dev)

  • 方法1:右下角点击分支、checkout到自己分支下、点击自己的分支、选择 remote branches 中的 origin/master 分支,点击 “Pull into dev_KC240524(当前分支) Using Merge ”。

ps:使用Rebase或Merge都可以 ; 本文中自己新的分支未改动,故使用的Rebase

  • 方法2:checkout到自己分支下、点击Git/Pull、选择 origin/master 分支、点击Pull。

以上两种方法都可。

示例: ps 我使用的是dev更新到dev_KC240524
原理等同我上面所述master更新到dev

① checkout到自己分支

在这里插入图片描述

② 目标分支(dev)更新到当前分支(dev_KC240524

在这里插入图片描述

PS:往下更新时使用Rebase; 往上合并时使用Merge

③ 当前分支出现“绿色”箭头提示(push)

  • 点击push 把代码提交到自己当前分支的远程仓库

2) 将自己的分支(dev)合并到主分支(master)

将自己的分支(dev)合并到主分支(master)

  • checkout到主分支(master)、先Pull一下最新的代码、点击右下角主分支、在local
    branches里选择自己的分支点击"merge selected into current"、然后记得push下、推送至远程仓库。

延申内容: Merge和Rebase的对比以及使用建议

从以下举例说明:

1. merge和rebase的提交历史差异

在这里插入图片描述

我们可以直观看到,经过rebase更新操作提交历史变成了一条直线形式,而经过merge更新操作远程的提交历史为非直线形式,且因为更新(而不是合并)多了一次merge记录。但是rebase也有很多缺点:

  1. rebase 之后 如果有冲突 解冲突时需把每次的commit都解一遍。

  2. rebase之后没有保留merge记录,意味着没有保存这步的操作,而git的意义不就是保存记录吗?

但是如果我们换一种思路考虑,我们在本地分支中使用 rebase 来更新,是为了让我们的本地提交记录更加清晰可读。(当然, rebase 不只用来合并 master 的改动,还可以在协同开发时 rebase 队友的改动)而主分支中使用 merge 来把 feature 分支的改动合并进来,是为了保留分支信息。

那么如何合适的使用rebase和merge呢?

  • 假如全使用 merge 就会导致提交历史繁复交叉,错综复杂。
  • 如果全使用 rebase 就会让你的commits history变成一条光秃秃的直线。

因此,一个好的commits history,应该是这样的,有合并记录且分支不交错:

*   e2e6451 (HEAD -> master) feture-c finished
|\
| * 516fc18 C.2
| * 09112f5 C.1
|/
*   c6667ab feture-a finished
|\
| * e64c4b6 A.2
| * 6058323 A.1
|/
*   2b24281 feture-b finished

而不应该是这样的,分支交错,看起来很混乱:

*   9f0c13b (HEAD -> master) feture-c finished
|\
| * 55be61c C.2
| *   e18b5c5 merge master
| |\
| |/
|/|
* |   ee549c2 feture-a finished
|\ \
| * | 51f2126 A.3
| * |   72118e2 merge master
| |\ \
| |/ /
|/| |
* | |   6cb16a0 feture-b finished
|\ \ \
| * | | 7b27b77 B.3
| * | | 3aac8a2 B.2
| * | | 2259a21 B.1
|/ / /
| * | 785fab7 A.2
| * | 2b2b664 A.1
|/ /
| * bf9e77f C.1
|/
* 188abf9 init

也不应该是这样的,完全呈一条直线,没有任何的合并记录:

* b8902ed (HEAD -> master) C.2
* a4d4e33 C.1
* 7e63b80 A.3
* 760224c A.2
* 84b2500 A.1
* cb4c4cb B.3
* 2ea8f0d B.2
* df97f39 B.1
* 838f514 init

2. Merge和Rebase的对比以及使用建议

我们通过上述例子得知,rebase和 merge 不是二选一的关系,要协同使用。

当开发只属于自己的分支时尽量使用rebase,减少无用的commit合到主分支里,多人合作时尽量使用merge,一方面减少冲突,另一个方面也让每个人的提交有迹可循。按照上述思路来说,我们按照如下规则可以合理使用rebase和merge操作:

  1. 如果我们只注重于更新操作时,rebase操作可能会更好些,因为没必要多生成一个除了开发外的merge记录,也可以让我们的本地提交记录清晰可读

  2. 当我们要把研发分支合入到主干时,我们更注重的是合并的操作,保留合并的记录,这个时候用merge会好些

在这里插入图片描述

参考文章:https://blog.csdn.net/qq_31960623/article/details/131430880

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

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

相关文章

【Python】 Python网络请求库大比拼:urllib、urllib2、urllib3与requests

基本原理 在Python中,进行网络请求是常见的任务之一,无论是下载网页内容、获取API数据还是进行文件上传。Python社区提供了多种库来帮助开发者完成这些任务。其中,urllib、urllib2、urllib3和requests是最为流行的几个。了解它们之间的区别对…

促进设备缺陷闭环管理,引入智能巡检系统正当时

经过近些年的应用与发展,智能巡检系统的功能与可操作性已经非常成熟,在巡检工作整合管理、与其他系统调用对接、促进设备缺陷闭环管理方面的优秀表现,使其在安全管理工作中的发挥了超预期的工具价值。 一、巡检工作整合管理 设备巡检管理、安…

QT 编译Lua 动态库,使用Lua脚本混合编程

一,编译Lua动态库 1,下载lua源码 地址:Lua: downloadhttps://www.lua.org/download.html 2,配置 解压lua源码压缩包,里面有个src文件夹,里面的代码就是lua的源码

Paper Survey——3DGS-SLAM

之前博客对多个3DGS SLAM的工作进行了复现及代码解读 学习笔记之——3DGS-SLAM系列代码解读_gs slam-CSDN博客文章浏览阅读1.9k次,点赞15次,收藏45次。最近对一系列基于3D Gaussian Splatting(3DGS)SLAM的工作的源码进行了测试与…

广东肇庆mes系统服务商 盈致科技

广东肇庆MES系统服务商盈致科技为企业提供专业的MES系统解决方案,帮助企业实现生产过程的数字化管理和优化。盈致科技的服务包括但不限于以下方面:MES系统定制开发:盈致科技可以根据企业的实际需求定制开发MES系统,满足企业特定的…

《猎杀:对决》是适合什么样的人玩 Mac电脑怎么玩《猎杀:对决》

《猎杀:对决》是一款集合了生存、竞技和恐怖元素的多人在线游戏,自推出以来受到了广大玩家的热爱。本文将详细探讨《猎杀:对决》适合什么样的人玩以及Mac电脑怎么玩《猎杀:对决》。本文将一一解析,帮助你了解这款游戏是…

maven中央仓库手动下载到本地仓库

1.maven中央仓库网址 maven中央仓库 2.搜索需要的jar包 3.点击坐标mybatis坐标进入 4.winR输入cmd打开命令窗口 mvn dependency:get -DremoteRepositoriesurl -DgroupIdgroupId -DartifactIdartifactId -Dversionversion5.maven本地仓库

判断JavaScript对象是否为空,最佳方法与性能对比

引言:在日常开发中,你是否经常需要判断一个对象是否为空?你知道有哪些高效的方法可以做到这一点吗?今天,我们不仅要探讨这些方法,还要通过性能对比找出最优解。快来看看,你平常用的方法是最佳选…

Linux安装gpu驱动

安装rpm包 进入官网 ,选择机器的配置和环境。 下载完rpm之后,运行下面的命令。 i) sudo rpm -i nvidia-driver-local-repo-rhel8-550.54.15-1.0-1.x86_64.rpm ii) sudo dnf clean all iii) sudo dnf -y module install nvidia-driver:latest-dkms 安…

2024/5/30

In recent weeks, Target and Aldi have broadcast price cuts on thousands of items, while Walmart unveiled a new private label lineup of quality “chef-inspired food” mostly in the $5-and-under range. The shift comes as U.S. consumers have been signaling th…

煤矿塌陷位移监测站-全天候监测

TH-WY1煤矿塌陷位移监测站,作为矿山安全监测系统的重要组成部分,其设计、构建和功能均针对煤矿塌陷等地质灾害的实时监测与预警。 煤矿塌陷位移监测站,简称位移监测站,是一种利用先进传感器和仪器设备,对煤矿及周边区…

QML信号连接到c++的槽函数(五)

文章目录 前言一、QML Signal and Handler Event System二、QML信号连接到c++的槽函数代码实例1. 创建一个QML 工程2. 用C++ 实现一个QML Types3. 代码实例4. 运行结果总结参考资料前言 本文主要介绍,如何将QML 中的信号连接到C++ 中的槽函数 软硬件环境: 硬件:PC 软件:wi…

以hive metastore报错举例,远程调试hadoop服务

项目场景: CDH集群CM切换hive元数据库报错: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at…

步进电机噪音大?抖动厉害?-TMC4361步进闭环方案轻松解决

步进电机的闭环控制,实现与伺服电机功能媲美及超越的特点。在电机控制过程中如果想要高效、更高精度以及绝对的可靠性,我们为您推荐在无传感器及将体积做到最小的更高性价比的驱动方案。 我们都知道,在步进电机无反馈时,电机的高…

【刷题(16)】子串

一 子串基础 二 和位K的子数组 1 题目 2 解题思路 前缀和哈希(两数之和) 假如存在区间[left,right],使得在[left,right]这个区间的子数组的和为k。换句话说,就是前right项和减去前left-1项和等于k,即前left-1项和等…

【机器学习】——驱动智能制造的青春力量,优化生产、预见故障、提升质量

目录 一.优化生产流程 1.1 数据收集 1.2 数据预处理 1.3 模型训练 1.4 优化建议 1.5 示例代码 二.预测设备故障 2.1 数据收集 2.2 数据预处理 2.3 模型训练 2.4 故障预测 2.5 示例代码 三.提升产品质量 3.1 数据收集 3.2 数据预处理 3.3 模型训练 3.4 质量提升…

07C回调函数

C零碎语法 目录 文章目录 C零碎语法流程1.声明一个函数指针2.定义回调函数3.注册回调函数 应用4.事件回调5.同步回调函数6.异步回调函数 流程 1.声明一个函数指针 uint8_t (*p_CallbackFunc)(void);2.定义回调函数 重要的是要注意回调函数只是一个函数。 由于它的使用方式(…

leetCode.90. 子集 II

leetCode.90. 子集 II 题目思路 代码 class Solution { public:vector<vector<int>> res;vector<int> path;vector<vector<int>> subsetsWithDup(vector<int>& nums) {// 先排序&#xff0c;让有相同元素的都放到一起sort(nums.begi…

msconfig修改引导导致电脑无法进入系统 和 启动蓝屏问题

目录 解决方法遇到的问题开机蓝屏进入【指定UFEI固件设置】进入bios启动系统选择界面&#xff08;忘了拍照&#xff09; 解决方法 找到一个移动U盘&#xff08;最好大于10G&#xff09;格式化&#xff1b;找一个好的电脑安装WEPE软件&#xff08;wepe安装链接&#xff09;&…

链表算法题(OJ刷题超详细讲解)

1.返回倒数第K个节点&#xff0c; OJ链接&#xff1a;返回倒数第K个节点 本题有很多种解法&#xff0c;例如创建数组&#xff0c;或者将原链表反转等等&#xff0c;这里们使用快慢指针&#xff0c;只需要遍历一遍链表&#xff0c;并且空间复杂度为O(1)&#xff0c;时间复杂度为…