前言全局说明
一、说明
使用 git 多人提交时,如果你 执行 git commit 后,又执行 git push ,但此时,你的同事比你早几秒提交,此时,你push 时,就会因为你没有pull导致报错。最简单的方式,是重新拉取整个库,但如果库很大,每次拉也不太现实。
二、错误提示
2.1 git pull 提示
| 提示:您有偏离的分支,需要指定如何调和它们。您可以在执行下一次 |
| 提示:pull 操作之前执行下面一条命令来抑制本消息: |
| 提示: |
| 提示: git config pull.rebase false |
| 提示: git config pull.rebase true |
| 提示: git config pull.ff only |
| 提示: |
| 提示:您可以将 "git config" 替换为 "git config --global" 以便为所有仓库设置 |
| 提示:缺省的配置项。您也可以在每次执行 pull 命令时添加 --rebase、--no-rebase, |
| 提示:或者 --ff-only 参数覆盖缺省设置。 |
| 致命错误:需要指定如何调和偏离的分支。 |

三、原因
| git config pull.rebase false 的作用是设置 Git 在执行 git pull 命令时使用 merge 而不是默认的 rebase。 |
| git pull 命令是将远程分支的更新合并到本地分支,如果本地分支有更新,则会自动执行合并操作。 |
| 默认情况下,git pull 命令会使用 rebase 的方式来合并分支。 |
| |
| 使用 rebase 的好处是可以保持提交历史的线性,避免了 merge 产生的分支合并记录。 |
| 但是,如果在多人协作的项目中使用 rebase,可能会破坏提交历史,导致代码冲突,因此需要谨慎使用。 |
| |
| 通过设置 git config pull.rebase false,Git 将默认使用 merge 的方式来合并分支,从而避免了 rebase 带来的潜在问题。 |
| |
| 需要注意的是,如果在执行 git pull 命令时指定了 --rebase 选项,则 Git 会优先使用 rebase 的方式来合并分支, |
| 而不受 git config pull.rebase 的设置影响。 |
| |
| 因此,如果需要强制使用 merge 的方式来合并分支,可以在执行 git pull 命令时添加 --no-rebase 选项。 |
四、解决方法
4.1 查看配置
4.1.1 查看系统级配置
| git config --system pull.rebase |
4.1.2 查看当前用户级
| git config --global pull.rebase |
4.1.1 查看项目级
4.2 临时,执行命令添加 --no-rebase 选项
4.3 永久,写道配置文件中
4.3.1 写到系统级(不推荐)
| git config --system pull.rebase false |
4.3.2 写到当前用户级
| git config --global pull.rebase false |
4.3.1 写到项目级
| git config pull.rebase false |
4.4 取消配置
4.4.1 取消系统级配置
| git config --system --unset pull.rebase |
4.4.2 取消当前用户级
| git config --global --unset pull.rebase |
4.4.1 取消项目级
| git config --unset pull.rebase |
五、 配置文件路径
5.1 系统级,配置文件路径
| Windows 配置项写入到 "C:\Program Files\Git\etc\gitconfig" 文件中。 |
| Linux 配置项写入到 "/etc/gitconfig" 文件中。 |
5.2 当前用户级,配置文件
| Windows 配置项写入到 "C:\Users\<用户名>\gitconfig" 文件中。 |
| Linux 配置项写入到 "/home/${USER}/gitconfig" 文件中。 |
5.1 项目级,配置文件
免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。
参考、来源:
参考 gitee 仓库 .git/config 设置内容
https://blog.csdn.net/kuang_nu/article/details/129592235
https://www.cnblogs.com/wutou/p/17585668.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)