这里简单记录一下当我们第一次将本地仓库同远程仓库连接之后,首次推送产生的问题以及常用的解决命令。
直接推送会产生如下错误信息
E:\重要文档\***>git push origin master
To https://gitee.com/BEATREEHERO/***.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://gitee.com/BEATREEHERO/***.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
该请求被拒绝是因为远程存在更新的内容而你本地并未存在远程仓库存在的内容,所以会被拒绝。
针对该问题,有一下几种解决方法。
强制推送
强行让本地分支覆盖远程分支,这个方式比较暴力,个人不建议使用,因为可能会覆盖掉某些重要的更新。而且,一般 -f
这种的一定要小心使用。
git push -f
拉取合并分支
将远程不同的更新拉取到本地,并合并分支,再推送
git pull * *
或者
git fetch **
git merge **
最后再 push
。
这里可能会出现一个错误 fatal: refusing to merge unrelated histories
对于该错误,可以采用如下命令强行合并分支
git pull origin branchname --allow-unrelated-histories