Git命令远程分支的合并和本地分支的同步


天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。


危楼高百尺,手可摘星辰。
不敢高声语,恐惊天上人。
——《夜宿山寺》


文章目录

  • 1. 合并命令
  • 2. 分支环境
  • 3. 合并分支(远程、本地代码同步)
    • 3.1 失败的做法
    • 3.2 成功的做法
      • 3.2.1 远程main合并到本地dev-libai
      • 3.2.2 远程dev-libai合并到本地dev-libai
  • 4. 总结



1. 合并命令

合并分支使用命令

git merge 分支名

2. 分支环境

现在我们有一个项目,放在了Gitlab平台的一个远程仓库,此时远程仓库有默认的主分支main
我们现在在远程仓库上再创建一个远程分支dev-libai作为开发分支。

项目经理有一台电脑,使用拉取了远程仓库的main分支到他的电脑,此时他用main分支进行开发
先需要项目经理通过git merge origin/dev-libai将main分支合并到远程dev-libai分支

现在自己有一台电脑,拉取了Gitlab上的这个项目的远程dev-libai分支,在自己电脑上的本地分支我们取名dev-libai

分支情况如下:
本地分支有main和dev-libai
远程分支(即远程项目仓库的分支)有:origin/main和origin/dev-libai

3. 合并分支(远程、本地代码同步)

首先项目经理在他电脑上修改了他本地的main分支代码,然后提交到了远程仓库的main分支上,现在我们想从远程main分支合并到我们自己电脑本地的dev-libai上,实现代码同步,该如何合并?

3.1 失败的做法

我尝试了直接从远程main分支合并到我自己电脑本地的dev-libai分支上,使用的命令如下:
先确保自己电脑当前分支是远程main分支,也就是当前分支需为origin/main

git status

如果不是需要使用命令切换到origin/main分支上

git checkout origin/main

然后将远程main合并到本地dev-libai分支

git merge dev-libai

结果本地代码中并没有项目经理提交到main分支的代码。
也就是说使用的上面的命令,直接将远程main合并到本地dev-libai分支,是不可取的。

3.2 成功的做法

merge是将两个远程分支合并到一个提交上,即不管是合并到那个分支,都是将两个分支的不同点合并到一个相同的点,这个点上两个分支实现了统一,即同步代码。

如何实现同步远程分支到本地,拉取即可,即使用pull命令将远程拉取到本地
但是根据我们前面的场景,如何将远程main分支同步到本地dev-libai分支,如下两种
第一种是在本地dev-libai分支上直接拉取main分支的代码覆盖到本地
第二种是将远程main分支的改动合并到远程dev-libai分支,然后再在本地dev-liubai分支拉取远程dev-libai分支的代码

3.2.1 远程main合并到本地dev-libai

直接从远程main分支拉取代码到本地dev-libai分支上即可实现将项目经理修改的代码同步到自己电脑上

git status

确保当前分支是本地的dev-libai分支,如果不是需切换当前分支

git checkout dev-libai

拉取main分支到本地dev-libai分支

git pull oririn main

需要注意的是,此时的本地dev-libai分支代码和远程main分支代码同步,但远程的dev-libai分支并未更新,需要执行更新命令将远程dev-libai分支同步

git add .
git commit -am "update dev-libai"
git push origin dev-libai

以上步骤结束后,远程main同步到本地dev-libai,且远程dev-libai与远程main也同步了,后续还是可以拉取远程dev-libai来更新代码

3.2.2 远程dev-libai合并到本地dev-libai

另一种同步项目经理修改的远程mian分支的代码的方法是,先将远程面分支的代码同步到远程dev-libai,然后再从远程dev-libai拉取到本地dev-libai
将当前分支切换到远程main分支

git checkout origin/main

将远程main分支合并到远程dev-libai分支

git merge origin/dev-libai

然后切换当前分支到本地dev-libai

git checkout dev-libai

最后从远程dev-libai拉取代码同步

git pull origin dev-libai

这样看来,不如直接从远程分支main拉取到本地,然后再本地推送到远程dev-libai

4. 总结

远程分支的合并使用merge,本地分支如果只在同一个机器,可以进行合并,如果是不同机器只能从远程拉取更新同步。


感谢阅读,祝君暴富!


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis-plus这么好用,不允许还有人不会

你好呀,我是 javapub. 做 Java 的同学都会用到的三件套,Spring、SpringMV、MyBatis。但是由于使用起来配置较多,依赖冲突频发。所有,各路大佬又在这上边做了包装,像我们常用的 SpringBoot、MyBatisPlus。 基于当前要…

[Python学习篇] Python函数

定义函数 语法:使用关键字 def def 函数名(参数): 代码1 代码2 ...... 调用函数 语法: 函数名(参数) 注意:不同的需求,参数可有可无。在Python中,函数必须先定义后使用 示例: # 定义函数 d…

WPDRRC信息安全体系架构模型

构建信息安全保障体系框架应包括技术体系、组织机构体系和管理体系等三部分,也就是说:人、管理和技术手段是信息安全架构设计的三大要素,而构成动态的信息与网络安全保障体系框架是实现系统的安全保障。 1.WPDRRC信息安全模型的定义 WPDRRC…

书城在线系统:基于Java和SSM框架的高效信息管理平台

开头语:你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。 开发语言:Java 数据库:MySQL 技术:SSM框架(Spring, Spring MVC, Mybatis) 工具&…

【面试系列】AI研究员高频面试题及详细解答

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…

图形对象句柄及属性对象句柄

句柄 句柄引用图形对象的具体实例。使用对象句柄设置和查询对象属性的值。 对象的句柄值,类似于编程时的引用,将对象的句柄值赋值给变量后,该变量就可以代表指定的绘图对象。 当创建图形对象时,可以将对象的句柄保存到变量中。 x 1:10; y x.^2; h plot(x,y); …

【开发环境】MacBook M系列芯片环境下搭建完整Python开发环境

文章目录 Anaconda和Python的关系?1. Python2. Anaconda 安装AnacondaPycharm整合Anaconda运行你的Python代码 Anaconda和Python的关系? 如果有简单了解过Python语言的,那么你很容易就会听到有人会叫你安装Anaconda。 那么Anaconda是什么&am…

如何寻找一个领域的顶级会议,并且判断这个会议的影响力?

如何寻找一个领域的顶级会议,并且判断这个会议的影响力? 会议之眼 快讯 很多同学都在问:学术会议不是期刊,即使被SCI检索,也无法查询影响因子。那么如何知道各个领域的顶级会议,并对各个会议有初步了解呢…

用AI,每天创作200+优质内容,2分钟教会你操作!

前段时间发布了这篇“寻找爆款文案及标题的9大渠道,直接搬运都能搞流量!”,里面我讲到如何寻找爆款标题。最近不少朋友问我,如何创作这个标题相关的内容。 多数平台都有风控规则,有些平台内容也会有字数要求。为了让大…

动态规划算法,完全零基础小白教程!不是计算机的都能学会!万字吐血详解。

目录 一、动态规划算法概念 题一 1、算法解析 1)确定状态: ​2)状态转移方程: ​3)初始化: 4)填表顺序: 5)返回值: 2、代码 题二 1、算法解析 1、确…

2Python的Pandas:读取数据

1.读取Excel文件 1.1.读取数据 import pandas as pd# Excel 文件的 URL 或本地路径 url "https://www.gairuo.com/file/data/dataset/team.xlsx"# 使用 Pandas 的 read_excel 函数读取数据 try:df pd.read_excel(url)print(df.head()) # 打印 DataFrame 的前几行…

【Node-RED 4.0.2】4.0版本新增特性(官方版)

二、重要功能 *1.时间戳格式改进 过去,node-red 只提供了 最原始的 timestamp 的格式(1970-01-01 ~ now) 但是现在,额外增加了 2 种格式: ISO 8601 -A COMMON FORMAT(YYYY-MM-DDTHH:mm:ss:sssZ&#xff…

《昇思25天学习打卡营第9天|onereal》

继续学习昨天的 基于MindNLPMusicGen生成自己的个性化音乐 生成音乐 MusicGen支持两种生成模式:贪心(greedy)和采样(sampling)。在实际执行过程中,采样模式得到的结果要显著优于贪心模式。因此我们默认启…

电巢直播中国星坤:让每次连接都有改变世界的能力

连接器作为电子设备中不可或缺的关键组件,发挥着至关重要的作用。连接器是电子电路中的“桥梁”,在器件与组件、组件与机柜、系统与子系统之间起电连接和信号传递的作用。连接器的好坏会直接影响整个系统的可靠性和运行效率,一旦出现问题&…

【问题已解决】Vue管理后台,点击登录按钮,会发起两次网络请求(竟然是vscode Compile Hero编译插件导致的)

问题 VueElement UI 做的管理后台,点击登录按钮,发现 接口会连续掉两次,发起两次网络请求,但其他接口都是正常调用的,没有这个问题,并且登录按钮也加了loading,防止重复点击,于是开…

Dify自定义工具例子

1.天气(JSON) {"openapi": "3.1.0","info": {"title": "Get weather data","description": "Retrieves current weather data for a location.","version": "v1…

linux和mysql基础指令

Linux中nano和vim读可以打开记事文件。 ifdown ens33 ifup ens33 关闭,开启网络 rm -r lesson1 gcc -o code1 code1.c 编译c语言代码 ./code1 执行c语言代码 rm -r dir 删除文件夹 mysql> show databases-> ^C mysql> show databases; -------…

鸿蒙开发设备管理:【@ohos.multimodalInput.touchEvent (触摸输入事件)】

触摸输入事件 设备上报的触屏事件。 说明: 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import {Action,ToolType,SourceType,Touch,TouchEvent} from ohos.multimodalInput.touchEvent;…

Android高级面试_8_热修补插件化等

Android 高级面试:插件化和热修复相关 1、dex 和 class 文件结构 class 是 JVM 可以执行的文件类型,由 javac 编译生成;dex 是 DVM 执行的文件类型,由 dx 编译生成。 class 文件结构的特点: 是一种 8 位二进制字节…

Linux指定文件权限的两种方式-符号与八进制数方式示例

一、指定文件权限可用的两种方式: 对于八进制数指定的方式,文件权限字符代表的有效位设为‘1’,即“rw-”、“rw-”、“r--”,以二进制表示为“110”、“110”、“100”,再转换为八进制6、6、4,所以777代表…