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

相关文章

Git的安装以及使用

一.简单介绍 1.1版本控制 版本控制是指对软件开发过程中各种程序代码,配置文件及说明文档等文件变更管理,是软件配置管理的核心思想之一。 版本控制最重要的内容是追踪文件的变更,它将什么时候,什么人更改了文件的什么内容等信息忠实的记录下来。除此之外,版本控制的另一重要的功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高开发效率。

TableView 当前选中的行号。 默认会使哪一行选中 加入导航条后contentInset向下偏移的64

1.得到当前选中的行号     NSLog(@"%ld %s",  [self.tableView indexPathForSelectedRow].row,__func__); 2.默认选中表格的那一行     [self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0 ]

Git代码管理的常用操作

在VS022中,Git的管理要先建立本地或远程仓库,然后commit到本地,最后push到远程代码库。 或者不建立本地的情况,直接拉取已有的远程代码。 Git是一个分布式版本控制系统,用于跟踪和管理文件的变化。它可以记录文件的修改历史,并且可以轻松地回滚到任何历史版本。 Git的基本概念包括: 仓库(Repository):Git使用仓库来存储文件的版本历史。一个仓库可以包含多个文件

通过sockst下载git

设置 Git 使用 SOCKS5 代理 git config --global http.proxy “socks5://localhost:1080” git config --global https.proxy “socks5://localhost:1080” 克隆仓库 git clone https://github.com/odoo/odoo.git 取消代理设置(可选) g

git clone [github]下载速度慢问题解决

将下面两个ip加入HOST 192.30.253.113 github.com 151.101.185.194 github.global.ssl.fastly.net 如果不起作用,登录 http://github.com.ipaddress.com/ (需要翻墙)输入 github.global.ssl.fastly.net 和 github.com查询对应的ip,修改host文件中的i

git fetch.git merge,git pull

git fetch origin branch1:branch2 首先执行上面的fetch操作 使用远程branch1分支在本地创建branch2(但不会切换到该分支),  如果本地不存在branch2分支, 则会自动创建一个新的branch2分支,  如果本地存在branch2分支, 并且是`fast forward', 则自动合并两个分支, 否则, 会阻止以上操作. Git pus

Eclipse使用git最基本流程

Eclipse使用git最基本流程,eclipsegit流程 git有诸多好处,网上都说的很清楚了,在这里我不再赘述。对于我来说,私下里想做一些项目,而又不能很好的保存自己的代码和进行版本控制,这时候,就用到了git。下面,就以我个人为例讲讲git从0开始如何安装使用。 Step1 准备工作 msysgit,下载地址为http://msysgit.github.io/

【已解决】在IDEA中使用Git拉取代码时提示:Can‘t update / master has no tracked branch

文章目录 问题描述原因分析解决方案 问题描述 在IDEA中使用Git拉取代码,尝试更新本地项目代码,提示 " Can't update / master has no tracked branch ",如下图所示: 原因分析 出现上述问题意味着本地名为master的分支(或者在很多新项目中为了更包容性已改为main作为默认分支名)并没有设置为跟踪任何远程分支。

在浏览器中打开预览sublime text当前所编辑文件的方法和快捷键设置

配置在Chrome,Firefox中打开 安装 SideBarEnhancements 然后通过ctrl + k, ctrl + b打开侧边栏,在侧边栏的文件中右击,找到 open width -> edit applications 然后在这里边设置firefox打开的方式。 application : 路径要修改为自己默认安装的路径。 [     {

JeecgBoot v3.7.0 all 版本发布,前后端合并一个仓库

项目介绍 JeecgBoot是一款企业级的低代码平台!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue3,Mybatis-plus,Shiro,JWT 支持微服务。强大的代码生成器让前后端代码一键生成! JeecgBoot引领低代码开发模式(OnlineCoding-> 代码生成-> 手工MERGE), 帮助解决Java项目70%的重复工作,让开