当前位置: 首页 > news >正文

使用 git 先提交后拉取的时候远程分支不允许问题

问题场景

修改本地代码使用 git 先提交后拉取的时候远程分支不允许的问题

image-20240319143627806

  1. 修改本地代码时,远程分支存在其他新提交
  2. 先执行了 git commit -m 'xxx update'
  3. 然后再执行 git pull 拉取远程分支代码,出现如下提示
hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running one of the following commands sometime before
hint: your next pull:
hint: 
hint:   git config pull.rebase false  # merge
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only
hint: 
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
fatal: Need to specify how to reconcile divergent branches.

问题解释

出现这种问题表明您的存储库中存在分歧的分支,这意味着不同的分支对同一份代码进行了不同的更改,Git 在尝试拉取更改时不知道如何协调它们。

为了协调这些分歧的分支,您需要在继续拉取操作之前选择提示消息中提供的选项之一。以下是各个选项及其含义:

  1. 合并(Merge):此选项将不同分支的更改合并到当前分支的新提交中。您可以通过运行以下命令启用此选项:

    arduinoCopy code
    git config pull.rebase false
    
  2. 变基(Rebase):此选项将一个分支的更改应用到另一个分支之上。它实际上是将分歧的提交移到当前分支的顶端。您可以通过运行以下命令启用此选项:

    arduinoCopy code
    git config pull.rebase true
    
  3. 仅快进(Fast-forward only):此选项允许 Git 仅在可能的情况下执行快进合并。如果由于分歧的分支而无法执行快进合并,则 Git 将不会自动合并更改,并需要手动干预。您可以通过运行以下命令启用此选项:

    arduinoCopy code
    git config pull.ff only
    

选择最适合您工作流程和项目要求的选项。一旦您做出选择,就可以像往常一样继续进行拉取操作。

请记住,您可以使用 --global 标志以及 git config 来为所有存储库设置默认偏好,或者您可以通过在命令行中传递 --rebase--no-rebase--ff-only 来覆盖已配置的默认设置。

rebase false true区别

git config pull.rebase falsegit config pull.rebase true 是用来配置 Git 在执行 git pull 命令时如何处理分支合并的方式,具体区别如下:

  1. git config pull.rebase false
    • 当您设置此选项时,Git 会使用合并(merge)策略来整合远程分支的变更到您的本地分支。
    • 这意味着,执行 git pull 后,Git 会尝试将远程分支的更改合并到您当前的分支上,并且可能会生成一个新的合并提交,以整合两个分支的更改。
  2. git config pull.rebase true
    • 当您设置此选项时,Git 会使用变基(rebase)策略来整合远程分支的变更到您的本地分支。
    • 这意味着,执行 git pull 后,Git 会尝试将您当前分支的提交应用到远程分支的最新提交之后,从而使您的提交历史线条更为线性。
    • 使用变基策略通常会产生一个更为整洁的提交历史,因为它不会生成额外的合并提交。

综上所述,git config pull.rebase false 将使用合并策略,而 git config pull.rebase true 将使用变基策略。您可以根据您的项目需求和个人偏好来选择合适的方式。

pull.ff only 作用和场景

git config pull.ff only 是用来配置 Git 在执行 git pull 命令时限制合并方式的选项。它的作用和适用场景如下:

作用:

  • 限制了 git pull 命令只能执行快进合并(fast-forward merge)。
  • 如果远程分支的最新提交是当前分支的祖先,那么执行 git pull 时会自动进行快进合并,从而保持提交历史的线性。

适用场景:

  • 当您确定在执行 git pull 时不希望生成额外的合并提交时,可以使用此选项。
  • 在确保在远程分支的变更不会导致冲突的情况下,可以启用此选项来保持提交历史的整洁和线性。

总的来说,git config pull.ff only 适用于那些希望保持提交历史线性,并且愿意放弃使用合并策略的场景,通常在团队中遵循一致的提交历史规范时会使用此选项。

查看 git config pull 配置

要查看 Git 配置中 pull 相关的设置,您可以使用以下命令:

git config --get pull.rebase
git config --global --get pull.rebase

这将显示 pull.rebase 的当前配置。如果该配置未设置,则不会有输出。

如果您想要查看所有与 pull 相关的配置,可以使用以下命令:

git config --get-regexp pull

这将列出所有以 pull 开头的配置项及其对应的值。

git config pull 设置成合并策略

要将 Git 的 pull 设置成合并策略,您可以执行以下命令:

# 单个配置
git config pull.rebase false# 全局配置
git config --global pull.rebase false

这将配置 Git 使用合并策略而非变基策略。这意味着在执行 git pull 命令时,Git 将会采用合并方式将远程分支的变更合并到本地分支。

相关文章:

使用 git 先提交后拉取的时候远程分支不允许问题

问题场景 修改本地代码使用 git 先提交后拉取的时候远程分支不允许的问题 修改本地代码时,远程分支存在其他新提交先执行了 git commit -m xxx update然后再执行 git pull 拉取远程分支代码,出现如下提示 hint: You have divergent branches and need…...

Unity 创建快捷方式开机自动启动

Unity 创建快捷方式自动启动 🌭食用方法 🌭食用方法 先导入插件包👈,再 把导入的ZYF_AutoRunApp.cs 挂到物体上即可。 using System; using System.Collections; using System.Collections.Generic; using System.IO; using Uni…...

什么是docker(docker客户端、镜像、容器、仓库)

一、docker Docker 是一个开源的容器化平台,它可以让开发者打包应用程序及其依赖项成为一个轻量级、可移植的容器,然后在任何环境中运行。Docker 容器将应用程序及其依赖项打包到一个标准化单元中,包括代码、运行时环境、系统工具、系统库等…...

[Python人工智能] 四十三.命名实体识别 (4)利用bert4keras构建Bert+BiLSTM-CRF实体识别模型

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前文讲解如何实现中文命名实体识别研究,构建BiGRU-CRF模型实现。这篇文章将继续以中文语料为主,介绍融合Bert的实体识别研究,使用bert4keras和kears包来构建Bert+BiLSTM-CRF模型。然而,该代码最终结…...

Android Framework开发之Linux +Vim命令

一、linux常用命令 在Android源码开发中,Linux命令的运用是至关重要的。这些命令不仅帮助开发者有效管理文件、目录和系统资源,还能在源码编译、调试和排错过程中发挥关键作用。以下是对Android源码开发中常用Linux命令的更详细介绍: 当然可…...

MySQL 索引的10 个核心要点

文章目录 🍉1. 索引底层采用什么数据结构?为什么不用hash🍉2. B树与B树区别?为何用B树?🍉3. 自增主键理解?🍉4. 为什么自增主键不连续🍉5. Innodb为什么推荐用自增ID&…...

MaixSense-A010 接入 ROS

MaixSense 是什么 MaixSense 系列产品搭载 TOF 深度摄像头,目前有 MaixSense-A010 和 MaixSense-A075V 两款产品。 MS-A010 是一款由 BL702 炬佑 100x100 TOF 模组所组成的极致性价比的 TOF 3D 传感器模组,最大支持 100x100 的分辨率和 8 位精度&…...

使用WordPress在US Domain Center上建立招聘网站的详细教程

第一部分:介绍招聘网站 招聘网站是指用于发布招聘信息、吸引求职者、进行简历筛选和管理招聘流程的网站。在WordPress中,您可以轻松地创建一个功能齐全的招聘网站,以便企业能够方便地管理招聘流程,并为求职者提供信息和应聘渠道。…...

C++:类和对象(上篇)

目录: 一:面向对象和过程的介绍 二:类的引入 三:类的定义 四:类的访问限定符以及封装 五:类的作用域 六:类的实例化 七:类对象大小的计算 八:类成员函数的this指…...

氧化铝电容的工艺结构原理及选型参数总结

🏡《总目录》 目录 1,概述2,工作原理3,结构特点4,工艺流程4.1,材料准备4.2,氧化处理4.3,薄膜处理4.4,电极制作4.5,封装4.6,测试与筛选5,选型参数5.1,电容量(Capacitance)...

野火ESP8266模块开发-基于Arduino IDE

一、野火ESP8266模块介绍 ESP8266 拥有高性能无线 SOC,给移动平台设计师带来福音,它以最低成本提供最大实用性,为 WiFi 功能嵌入其他系统提供无限可能。ESP8266 是一个完整且自成体系的 WiFi 网络解决方案,能够独立运行&#xff0…...

[Qt学习笔记]Qt实现自定义控件SwitchButton开关按钮

1、功能介绍 在项目UI中使用较多的打开/关闭的开关按钮,一般都是找图片去做效果,比如说如下的图像来表征打开或关闭。 如果想要控件有打开/关闭的动画效果或比较好的视觉效果,这里就可以使用自定义控件,使用Painter来绘制控件。软…...

【工具】mac 环境配置

【待补充 】 一、maven配置 vim ~/.bash_profile export M3_HOME/Users/chenyang/java_utils/apache-maven-3.6.1 export PATH$PATH:$M3_HOME/bin ​ //mvn -v提示Permission denied 没有权限访问 chmod ax /Users/chenyang/java_utils/apache-maven-3.6.1/bin/mvn 二、java…...

【前端寻宝之路】学习和总结HTML的标签属性

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​💫个人格言:“没有罗马,那就自己创造罗马~” 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不…...

kafka2.x版本配置SSL进行加密和身份验证

背景:找了一圈资料,都是东讲讲西讲讲,最后我还没搞好,最终决定参考官网说明。 官网指导手册地址:Apache Kafka 需要预备的知识,keytool和openssl 关于keytool的参考:keytool的使用-CSDN博客 …...

Linux和Windows下的文件批量重命名

一、Linux下文件批量重命名 rename命令说明: Usage: rename [options] … Rename files. Options: -v, --verbose explain what is being done -s, --symlink act on the target of symlinks -n, --no-act do not make any changes -o, --no-overwrite don’t overw…...

stm32之GPIO电路介绍

文章目录 1 GPIO介绍2 GPIO的工作模式2.1 浮空输入2.2 上拉输入2.3 下拉输入2.4 模拟输入2.5 开漏输出2.6 推挽输出2.7 复用开漏输出2.8 复用推挽输出2.9 其他 3 应用方式4 常用库函数 1 GPIO介绍 保护二极管:保护引脚,让引脚的电压位于正常的范围施密特…...

Unity Toggle处理状态变化事件

Toggle处理状态变化事件,有两个方法。 法一、通过Inspector面板设置 实现步骤: 在Inspector面板中找到Toggle组件的"On Value Changed"事件。单击""按钮添加一个新的监听器。拖动一个目标对象到"None (Object)"字段&am…...

UE5.1 iClone8 正确导入角色骨骼与动作

使用iClone8插件Auto Setup 附录下载链接 里面有两个文件夹,使用Auto Setup C:\Program Files\Reallusion\Shared Plugins 在UE内新建Plugins,把插件复制进去 在工具栏出现这三个人物的图标就安装成功了 iClone选择角色,导入动作 选择导出FBX UE内直接导入 会出现是否启动插件…...

FFmpeg-- c++实现:pcm和yuv编码

文章目录 流程音频视频 api核心代码audioencoder.haudioencoder.cppvideoencoder.hvideoencoder.cpp pcm和yuv编码为aac和h264,封装为c的AudioEncoder类和VideoEncoder类 流程 音频 初始化音频参数 int InitAAC(int channels, int sample_rate, int bit_rate); 音…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​:Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...