问题描述
在 gitlab 私有服务器上托管了 hexo 项目,因为直接在 gitlab 项目上使用了 IDE 在线修改文件,忘记了在本地使用 git pull
更新,结果在本地修改了文件提交推送到远程后报:
1 2 3 4 5 6 7 8
| leazhi@leazhi-ubuntu2310:/data/gitlab/111111.com$ git push To gitlab.linuser.com:leazhi/111111.com.git ! [rejected] main -> main (fetch first) error: 推送一些引用到 'gitlab.linuser.com:leazhi/111111.com.git' 失败 提示:更新被拒绝,因为远程仓库包含您本地尚不存在的提交。这通常是因为另外 提示:一个仓库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更 提示:(如 'git pull ...')。 提示:详见 'git push --help' 中的 'Note about fast-forwards' 小节。
|
按照提示 执行 git pull
又报:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| leazhi@leazhi-ubuntu2310:/data/gitlab/111111.com$ git pull remote: Enumerating objects: 4, done. remote: Counting objects: 100% (4/4), done. remote: Compressing objects: 100% (3/3), done. remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 展开对象中: 100% (3/3), 1.18 KiB | 1.18 MiB/s, 完成. 来自 gitlab.linuser.com:leazhi/111111.com 5c0531c..efcf9cc main -> origin/main 提示:您有偏离的分支,需要指定如何调和它们。您可以在执行下一次 提示: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 参数覆盖缺省设置。 fatal: 需要指定如何调和偏离的分支。
|
解决方法
根据提示信息,我们直接选择合并,执行命令:
1
| leazhi@leazhi-ubuntu2310:/data/gitlab/111111.com$ git config pull.rebase false
|
然后再次执行 git pull
将 gitlab 更新的代码拉到本地
1 2 3 4 5
| leazhi@leazhi-ubuntu2310:/data/gitlab/111111.com$ git pull Merge made by the 'ort' strategy. .gitlab-ci.yml | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .gitlab-ci.yml
|
最后,在执行 git push
即可!