git合并分支时当前分支落后于主分支

2024-03-06 03:30

本文主要是介绍git合并分支时当前分支落后于主分支,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 问题重现:
    • 解决思路:
    • 实现:
      • 第一步:根据主分支(origin)代码在本地创建新的临时分支,命名为temp
      • 第二步:将临时分支(temp)合并到开发分支(feature/dev)
      • 第三步:解决合并后的冲突
      • 第四步:提交开发分支(feature/dev)并push到远程仓库
      • 第五步:将开发分支(eature/dev)合并到主分支(origin)

问题重现:

我们平时开发的时候都是从主分支创建分支,然后将该分支拉取到本地进行开发,开发完成以后再将此分支合并到远程主分支。
但是一般而言,我们都是整个团队在开发,等开发完了,需要合并到远程分支的时候,远程分支已经有很多次提交(commit)了,自己的分支已经落后主分支很多版本,切换回主分支的时候就不在最新commit上:

git checkout origin

git合并分支时当前分支落后于主分支_01.png
那么这个时候应该怎么办呢?

解决思路:

假设当前开发的分支名为:feature/dev
根据主分支(origin)代码在本地创建新的临时分支,命名为temp
将临时分支(temp)合并到开发分支(eature/dev
解决合并后的冲突
提交开发分支(feature/dev)并push到远程仓库
后将开发分支(feature/dev)合并到主分支(origin

实现:

第一步:根据主分支(origin)代码在本地创建新的临时分支,命名为temp

# 获取远程仓库origin主分支的最新代码
git fetch origin

git合并分支时当前分支落后于主分支_02.png

# 根据主分支创建一个临时分支
git checkout -b temp origin

git合并分支时当前分支落后于主分支_03.png
我们可以看到dev分支与temp分支是不一样的
git合并分支时当前分支落后于主分支_04

第二步:将临时分支(temp)合并到开发分支(feature/dev)

# 可以先看下开发分支与临时分支的差别
git diff feature/dev temp

git合并分支时当前分支落后于主分支_05

# 切换到开发分支
git checkout  feature/dev# 合并临时分到开发分支
git merge temp

git合并分支时当前分支落后于主分支_06
我们可以看到在for_test/test_behand_merge.py文件中有代码冲突,我们需要解决冲突后再进行下一步的操作

第三步:解决合并后的冲突

git合并分支时当前分支落后于主分支_07
解决冲突后是这样的:
git合并分支时当前分支落后于主分支_08

第四步:提交开发分支(feature/dev)并push到远程仓库

我们现在可以看下Git的状态:
git合并分支时当前分支落后于主分支_09
解决冲突后提交一下:

git statusgit add test_behand_merge.pygit commit -m "测试:当前分支落后主分支 --> 创建临时分支并合并到dev分支"git push

git合并分支时当前分支落后于主分支_10

第五步:将开发分支(eature/dev)合并到主分支(origin)

切换到主分支:

git checkout origin

git合并分支时当前分支落后于主分支_11
我们会发现还是还是不是指向最新的提交,OK,没有关系,我们让Git指向最新的提交:

git checkout master

git合并分支时当前分支落后于主分支_12
我们会发现当前分支落后origin/master4个提交,OK,pull一下

# 记得pull一下
git pull

git合并分支时当前分支落后于主分支_13
这个时间就可以做最终的合并了:

git merge feature/dev

git合并分支时当前分支落后于主分支_14
最后push一下就ok了。

这篇关于git合并分支时当前分支落后于主分支的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/778744

相关文章

不删数据还能合并磁盘? 让电脑C盘D盘合并并保留数据的技巧

《不删数据还能合并磁盘?让电脑C盘D盘合并并保留数据的技巧》在Windows操作系统中,合并C盘和D盘是一个相对复杂的任务,尤其是当你不希望删除其中的数据时,幸运的是,有几种方法可以实现这一目标且在... 在电脑生产时,制造商常为C盘分配较小的磁盘空间,以确保软件在运行过程中不会出现磁盘空间不足的问题。但在

在C#中合并和解析相对路径方式

《在C#中合并和解析相对路径方式》Path类提供了几个用于操作文件路径的静态方法,其中包括Combine方法和GetFullPath方法,Combine方法将两个路径合并在一起,但不会解析包含相对元素... 目录C#合并和解析相对路径System.IO.Path类幸运的是总结C#合并和解析相对路径对于 C

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情

hdu2241(二分+合并数组)

题意:判断是否存在a+b+c = x,a,b,c分别属于集合A,B,C 如果用暴力会超时,所以这里用到了数组合并,将b,c数组合并成d,d数组存的是b,c数组元素的和,然后对d数组进行二分就可以了 代码如下(附注释): #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<que

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen