【Git】Merge本地和远程不在同一commit

news/2024/11/5 15:56:11 标签: git, git merge

1 前言

当本地仓库与远程仓库不在同一个commit上时,即本地仓库的提交历史与远程仓库的提交历史出现了分歧,但我们需要将本地分支merge到远程的主分支。这个情况是我们在团队协作共同开发一套代码时,经常遇到的问题。本文介绍我常用的操作步骤。

2 步骤

  1. 首先,你需要将远程仓库的最新提交拉取到本地,以便了解远程仓库的当前状态,这可以通过以下命令完成:
    git fetch origin
    
    这个命令会将远程仓库(默认名为origin)的所有更新拉取到本地,但不会自动合并或修改你的当前工作目录和分支。
  2. 在拉取远程仓库的最新提交后,你可以使用git log或git diff等命令来比较本地分支与远程分支之间的差异,以便了解需要合并哪些更改。
    使用git log查看提交历史:
    git log --oneline --graph --decorate --all
    
    这个命令将显示一个图形化的提交历史,包括所有分支的提交。
    或者使用git diff比较分支差异:
    git diff master origin/master
    
    这个命令将比较本地master分支与远程origin/master分支之间的差异。
  3. 合并或变基
  • 合并(Merge):合并是将远程分支的更改合并到当前分支中。这会在提交历史中创建一个新的“合并提交”(merge commit),表示两个分支的合并点。
    git merge origin/master
    
  • 变基(Rebase):变基是将一系列提交在当前分支上重新应用,就好像它们是在某个其他提交之后立即创建的一样。这可以使提交历史看起来更加线性和清晰。
    git rebase origin/master
    
    变基过程中也可能出现冲突,同样需要手动解决。与合并不同的是,变基会改变本地分支的提交历史。
    如果你之前使用了变基并且改变了本地分支的提交历史,推送可能会失败,因为远程仓库中可能已经有了基于旧提交历史的新提交。可能需要使用git push --force来强制推送你的更改。
  1. 解决冲突
    合并冲突后,Git 会停止合并过程,并标记出冲突的文件。你可以通过 git status 查看哪些文件存在冲突。打开 Git 标记为冲突的文件。在冲突区域,你会看到 Git 插入的特殊标记,这些标记通常看起来像这样:
    <<<<<<< HEAD  
    这是当前分支(HEAD)的内容  
    =======  
    这是合并进来的分支的内容  
    >>>>>>> 合并分支的名称
    
    你需要手动编辑这些文件,决定如何合并这些更改。你可以保留当前分支的更改、合并分支的更改,或者将两者合并成新的内容。
  2. 推送更改到远程仓库
    解决完冲突之后,需要git add和commit,然后push。

3 小结

在开发过程中,一般都是在分支上开发然后合并到主分支,合并过程会有各种方法做到,本章介绍自己在平时使用的一个流程步骤,大家也可在此基础上继续优化。


http://www.niftyadmin.cn/n/5739647.html

相关文章

在分布式光伏电站如何进行电能质量的治理?

1.概述 随着全球对可再生能源需求的增加&#xff0c;分布式光伏电站的建设和发展迅速。然而&#xff0c;分布式光伏电站的运行过程中面临着一系列问题&#xff0c;比如导致企业关口计量点功率因数过低、谐波污染等。这些问题不仅影响光伏电站自身的运行效率&#xff0c;还会对…

安利一款开源企业级的报表系统SpringReport

SpringReport是一款企业级的报表系统&#xff0c;支持在线设计报表&#xff0c;并绑定动态数据源&#xff0c;无需写代码即可快速生成想要的报表&#xff0c;可以支持excel报表和word报表两种格式&#xff0c;同时还可以支持excel多人协同编辑&#xff0c;后续考虑实现大屏设计…

气象大模型学习笔记

1 003-2D卷积&#xff08;nn.Conv2d&#xff09;和3D卷积&#xff08;nn.Conv3d&#xff09;的介绍与对比 2 Python】nn.ConvTranspose1、2、3d()函数详解和示例 3 swin-transformer

vue3中使用vue-diff工具来比较数据差异

1.安装vue-diff npm i vue-diff 2.main.js中全局注册 import VueDiff from "vue-diff"; import "vue-diff/dist/index.css";app.use(VueDiff) 3.使用 <template><div class"contain-page"><el-scrollbar height"100vh&…

【递归】——五道经典链表与递归问题的深度解析

文章目录 面试题08.06.汉诺塔问题合并两个有序链表反转链表两两交换链表中的节点Pow(x,n) 面试题08.06.汉诺塔问题 解题思路&#xff1a; 我们可以使用递归的方法将问题分解为更小的子问题。 对于 n 个盘子&#xff0c;移动过程如下&#xff1a; 移动上 n-1 个盘子&#xff1a…

ES + SkyWalking + Spring Boot:日志分析与服务监控(三)

目录 一、搭建SkyWalking 1.1 版本选择 1.2 下载安装 1.3 配置启动 1.4 SkyWalking UI介绍 二、Springboot项目使用 2.1 Agent下载 2.2 Agent配置skywalking oap地址 2.3 IDEA配置Agent地址 2.4 生成的ES索引介绍 三、在kibana上查看日志 四、问题和解决 3.1 日志…

您与此网站之间建立的连接不安全解决方法

如果你打开网站&#xff0c;地址栏有警告&#xff0c;点进去是这样的提示&#xff1a;您与此网站之间建立的连接不安全&#xff0c;了解详细信息。 请勿在此网站上输入任何敏感信息&#xff08;例如密码或信用卡信息&#xff09;&#xff0c;因为攻击者可能会盗取这些信息。 …

汇聚全球前沿科技产品,北京智能科技产业展览会·世亚智博会

在北京这座古老而又充满现代气息的城市中&#xff0c;一场科技与创新的盛宴正悄然上演——北京智能科技产业展览会&#xff08;简称&#xff1a;世亚智博会&#xff09;&#xff0c;作为全球前沿科技的汇聚地&#xff0c;不仅展示了人工智能、5G通信、虚拟现实等尖端技术的最新…