博主已经在本文的《2.1 理解问题的文案描述》章节中将选项pull.rebase
和pull.ff
的参数的所有情况进行了一一介绍,因此具体怎么配置按照你使用Git的个人喜好即可。
例如博主喜欢在git pull
时只接受快进合并和变基合并,那么博主可以执行git config pull.ff only
,保证每次执行不带选项的git pull
时要么快进合并成功,要么快进合并失败。如果快进合并失败,博主再显式执行git pull --rebase
进行变基合并即可。
《Git官方文档-参考-pull.ff》文章中对选项pull.ff
各个参数的定义:
当把pull.ff
设置为false时,这个变量告诉Git在这种情况下,如果执行不带选项的git pull
命令时先尝试快进合并,不行再创建一个合并后新的提交。
当把pull.ff
设置为only时,只允许快进合并(相当于执行命令git pull --ff-only
),如果执行不带选项的git pull
命令时,不能进行快进合并则终止当前操作。
如果将pull.ff
设置为only,而执行不带选项的git pull
命令被终止,其实可以使用带参数的git pull --no-ff
或者git pull --rebase
命令来执行pull操作。
《Git官方文档-参考-pull.base》文章中pull.rebase
的各个参数的定义:
当pull.rebase
为true时,运行不带选项的命令git pull
相当于执行git pull --rebase
。
当pull.rebase
为false时,运行不带选项的命令git pull
不会被改变含义,即不会变基。如果想变基,需要在执行命令时显式地加上选项--rebase
,即git pull --rebase
。
如果你是一个Git小白,看完我上述的文章还是没看懂什么意思,又希望你自己在执行git pull
命令时,既保持当前的默认合并策略,保证不再出现配置合并策略的警告文案,那么你只需要执行git config pull.ff false
即可,因为pull.ff
默认是没有指定的,而没有指定的pull.ff
的默认值与显式指定为false的效果一致。因此当你显式指定pull.ff
后,既保持当前的默认合并策略,又能保证不再出现配置合并策略的警告文案。
另外,上述提到的默认策略便是不带任何选项的git pull
命令:先尝试快进合并,如果不行再进行正常合并生成一个新的提交。
本文参考文献:
Git warning: Pulling without specifying how to reconcile divergent branches is discouraged
Git官方文档-参考-pull.ff
Git官方文档-参考-pull.base
Git官方文档-参考-git pull
CNBlogs文章《git fetch, git pull 以及 FETCH_HEAD》
从下载二进制文件。
或自行构建。 需要最新的 。
git clone --depth=1 https://github.com/ne-sachirou/git-cleanup-branch.git
cd git-cleanup-branch
make && make install
cd git_project
git cleanup-branch
分叉仓库。
签出新功能分支。
实施功能。
测试功能。
出现这个问题的原因如标题所述。
原因是,当前文件的branch和要pull的branch名字不一样,是两个分支。对于两个branch,git不能直接操作,需要你指定什么操作。
要操作的提示也直接给你提醒了:
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the followi
1.报错信息
今天往gitlab服务器上准备push代码的时候,先pull了一下,更新一下分支,结果就报了下面的错,然后就一直提示输入密码
warning: Pulling without specifying how to reconcile divergent branches is discouraged. You can squelch this message by running one of the following commands sometime before your next pu
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
文章目录一、报错信息分析二、命令介绍(1) git config(2)`git pull` warning解析1. `pull.ff`2. pull.rebase(3)only、true、false1. only2. true or false三、报警分析三、 解决方法
一、报错信息分析
warning: Pulling without specifying how to reconcile divergent branches is discouraged. You can squelch this me
git-trim git-trim自动修剪您的跟踪分支,其上游分支已合并或偏离。
git-trim是git f缺少的伴侣git-trim git-trim自动修剪您的跟踪分支,其上游分支已合并或偏离。
git-trim是git fetch --prune所缺少的伴侣,它是替代您的git的正确,安全,快速的替代方法
FAQ指令截屏安装从发行版下载二进制文件,并将其放在PATH目录下。
如果您有货物,也可以使用cargo install git-trim进行安装。
它在依赖condi的情况下使用git2
并且比本地的更新,还有其他更多乱七八糟的问题,
那么下面就简单说明一下其中案例的解决方案。
对于git的配置请看这篇:Gitee码云从新建仓库到免密钥推送完整教程,教你如何走上git开发之路
1、本地存在未推送,远程存在更新
1.1、模拟过程
准备条件:
最近遇到这样一个问题:git提交(push)前,进行拉取代码(pull)的操作时时,出现以下问题:
Git:hint:Pulling without specifying how to reconclie divergent branches is...
解决(依次执行以下两行代码):
// 执行不带选项的git pull命令时先尝试快进合并,不行再创建一个合并后新的提交
1. git config pull.ff false
// 运行不带选项的命令git pull不会被改变含义,即不会变基