Visual Studio Code中GitLens无法执行pull、push操作如何解决?
错误根因
该报错与GitLens、VS Code本身的安装状态无关,核心原因是GitLens执行拉取操作时默认使用--ff-only(仅快进)的拉取策略:当远程分支存在本地未同步的提交、或本地与远程分支出现提交分叉时,快进合并无法完成就会抛出该错误。你本地终端可以正常提交推送,是因为终端调用Git时继承了你本地配置的全局拉取策略,和GitLens默认的强制快进策略不一致。
解决方法
方法一:修改全局Git拉取策略(一劳永逸)
根据你的使用习惯二选一执行终端命令即可:
- 习惯合并模式保留分叉提交记录:
git config --global pull.merge true - 习惯变基模式保持提交线干净:
git config --global pull.rebase true
配置完成后GitLens会自动继承全局配置,不再强制仅快进拉取。
方法二:仅修改VS Code侧拉取配置
如果不想修改全局Git配置,可直接调整VS Code设置:
- 打开VS Code设置(M1版VS Code快捷键为
Cmd+,) - 搜索
Git: Pull Arguments配置项 - 删除该项中默认的
--ff-only参数,也可根据需求添加--rebase或--merge参数 - 保存设置后重启GitLens即可生效
方法三:单次临时解决
如果仅本次遇到问题,不需要修改配置,可直接在VS Code内置终端执行一次:git pull --rebase origin main 或 git pull --merge origin main,完成分支同步后再用GitLens操作就不会报错。
内容的提问来源于stack exchange,提问作者Dennis
相关产品推荐
相关产品推荐

