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

- 修改本地代码时,远程分支存在其他新提交
- 先执行了
git commit -m 'xxx update' - 然后再执行
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 在尝试拉取更改时不知道如何协调它们。
为了协调这些分歧的分支,您需要在继续拉取操作之前选择提示消息中提供的选项之一。以下是各个选项及其含义:
-
合并(Merge):此选项将不同分支的更改合并到当前分支的新提交中。您可以通过运行以下命令启用此选项:
arduinoCopy code git config pull.rebase false -
变基(Rebase):此选项将一个分支的更改应用到另一个分支之上。它实际上是将分歧的提交移到当前分支的顶端。您可以通过运行以下命令启用此选项:
arduinoCopy code git config pull.rebase true -
仅快进(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 false 和 git config pull.rebase true 是用来配置 Git 在执行 git pull 命令时如何处理分支合并的方式,具体区别如下:
- git config pull.rebase false:
- 当您设置此选项时,Git 会使用合并(merge)策略来整合远程分支的变更到您的本地分支。
- 这意味着,执行
git pull后,Git 会尝试将远程分支的更改合并到您当前的分支上,并且可能会生成一个新的合并提交,以整合两个分支的更改。
- 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 网络解决方案,能够独立运行࿰…...
[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); 音…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
