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.mzph.cn/pingmian/39468.shtml

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

相关文章

怎么压缩ppt文件大小?这四种压缩方法真的超级好用!

怎么压缩ppt文件大小?当我们精心打造PPT时,随着创意的涌动和内容的充实,常常会发现PPT文件的大小也在不知不觉间悄然膨胀,这背后其实隐藏着诸多因素,首先,我们可能过于追求视觉效果,不经意间在P…

【信息学奥赛】CSP-J/S初赛05 计算机原码、补码和反码

本专栏👉CSP-J/S初赛内容主要讲解信息学奥赛的初赛内容,包含计算机基础、初赛常考的C程序和算法以及数据结构,并收集了近年真题以作参考。 如果你想参加信息学奥赛,但之前没有太多C基础,请点击👉专栏&#…

IPython交互式Shell的高级功能:探索Python交互式编程的边界

🚀 IPython交互式Shell的高级功能:探索Python交互式编程的边界 IPython是一个强大的Python交互式解释器,它提供了许多高级功能,使得Python编程更加高效和有趣。这些功能包括但不限于改进的交互式Shell、Jupyter笔记本、魔术命令、…

线性代数大题细节。

4.4 方程组解的结构(二)_哔哩哔哩_bilibili

c++将一个复杂的结构体_保存成二进制文件并读取

在 C 中&#xff0c;可以将复杂的结构体保存到二进制文件中&#xff0c;并从二进制文件中读取它。为了实现这一点&#xff0c;你可以使用文件流库 <fstream>。以下是一个示例&#xff0c;展示如何将一个复杂的结构体保存到二进制文件中&#xff0c;并从二进制文件中读取它…

【高中数学/三角函数】已知:实数a,b,c满足a+b+c=0,且a^2+b^2+c^2=1 求:a的最大值?

【问题】 已知&#xff1a;实数a,b,c满足abc0,且a^2b^2c^21 求&#xff1a;a的最大值&#xff1f; 【问题来源】 https://www.ixigua.com/7289764285772497448?logTag0d228277f3a8e049ab6d 【解答】 解&#xff1a;由abc0可得c-(ab) 代入a^2b^2c^21得a^2b^2(ab)^21 又…

深入MOJO编程语言的单元测试世界

引言 在软件开发的历程中&#xff0c;单元测试扮演着至关重要的角色。单元测试不仅帮助开发者确保代码的每个部分都按预期工作&#xff0c;而且也是代码质量和维护性的关键保障。本文将引导读者了解如何在MOJO这一假想编程语言中编写单元测试&#xff0c;尽管MOJO并非真实存在…

Docker在windows上使用vscode远程连接容器

目录 一、提前准备&#xff1a; 二、vscode连接docker容器 三、构建好的docker容器直接连接vscode 四、Windows下的可视化出linux的ui界面 在日常的开发中&#xff0c;不想windows和linux两个系统之间来回切换&#xff0c;笔者最近打算所有的环境均在一个系统上完成。为了交…

Nosql期末复习

mongodb基本常用命令&#xff08;只要掌握所有实验内容就没问题&#xff09; 上机必考&#xff0c;笔试试卷可能考&#xff1a; 1.1 数据库的操作 1.1.1 选择和创建数据库 &#xff08;1&#xff09;use dbname 如果数据库不存在则自动创建&#xff0c;例如&#xff0c;以下…

学习无人机飞行技术,有哪些就业方向?

随着无人机技术的不断进步和应用领域的拓展&#xff0c;研发创新人才的需求也将不断增加&#xff0c;那就业前景还是很广阔的。学习无人机飞行技术后&#xff0c;有以下多个就业方向可供选择&#xff1a; 1. 无人机操作员&#xff1a; - 负责操控和监控无人机飞行&#xff0c;…

基于索尼基于索尼Spresense的眼睛跟随平台中两个模型的对比

1.模型一(现在使用的) 这个模型是一个简单的神经网络&#xff0c;由三个主要组件组成&#xff1a;输入层、一个全连接层&#xff08;Affine层&#xff09;、一个Sigmoid激活函数层和一个Binary Cross Entropy损失层。 以下是每个组件的说明&#xff1a; Input 层&#xff1a;这…

ubuntu 更换软件源

ubuntu 更换软件源 在Ubuntu 20.04 LTS中更换软件源可以通过图形界面或命令行进行。更换软件源通常是为了加快软件包的下载速度或解决软件源不可用的问题。这里我将分别说明如何通过图形界面和命令行更换软件源。 通过图形界面更换软件源&#xff1a; 打开“软件和更新”设置…

【LeetCode】验证回文串

目录 一、题目二、解法完整代码 一、题目 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s&#xff0c;如果它是 回文串 &…

问题集锦1

01.inner中使用JwtTokenUtil.getUserCode() 前端调用上传&#xff08;java&#xff09;&#xff0c;上传使用加购 Overridepublic Boolean insertShoppingCart(InsertShoppingCartParamsDto dto) {// 通过userCode,itemCode和supplierCode来判断当前加购人添加到购物车的商品是…

51单片机第23步_定时器1工作在模式0(13位定时器)

重点学习51单片机定时器1工作在模式0的应用。 在51单片机中&#xff0c;定时器1工作在模式0&#xff0c;它和定时器0一样&#xff0c;TL1占低5位&#xff0c;TH1占高8位&#xff0c;合计13位&#xff0c;也是向上计数。 1、定时器1工作在模式0 1)、定时器1工作在模式0的框图…

查看Oracle是哪个Oracle_home 下启动的

[rootrac1 ~]# ps -ef|grep smon root 413 24903 0 22:30 pts/0 00:00:00 grep --colorauto smon root 27165 1 0 22:11 ? 00:00:09 /u01/app/19.0.0/grid/bin/osysmond.bin grid 27784 1 0 22:12 ? 00:00:00 asm_smon_ASM1 oracl…

基础不牢地动山摇:JS逆向攻防对抗核心的博弈点在于对JS最基础部分的深刻理解和灵活应用——干货语法大全

基础不牢地动山摇&#xff1a;JS逆向攻防对抗核心的博弈点在于对JS最基础部分的深刻理解和灵活应用——语法大全 JS逆向攻防对抗核心的博弈点在于对JS最基础部分的深刻理解和灵活应用&#xff0c;偏门基础用法语法知道的越多&#xff0c;理解的越深刻&#xff0c;运用的越灵活…

前端知识点

HTML、CSS 相关 1、 BFC 1、BFC 是什么&#xff1f; BFC&#xff08;Block Formatting Context&#xff09; 格式化上下文&#xff1b; 指一个独立的渲染区域&#xff0c;或者说是一个隔离的独立容器&#xff1b;可以理解为一个独立的封闭空间。无论如何不会影响到它的外面 …

贪心+后缀和,CF 1903C - Theofanis‘ Nightmare

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1903C - Theofanis Nightmare 二、解题报告 1、思路分析 我们任意一种分组其实都是若干个后缀和相加 比如我们分成了三组&#xff0c;第一组的数被加了一次&#xff0c;第二组的数被加了两次&#xff0c;第…

JDK动态代理-AOP编程

AOPTest.java&#xff0c;相当于main函数&#xff0c;经过代理工厂出来的Hello类对象就不一样了&#xff0c;这是Proxy.newProxyInstance返回的对象&#xff0c;会hello.addUser会替换为invoke函数&#xff0c;比如这里的hello.addUser("sun", "13434");会…