在我们推送成果去git(码云)的过程中报错:Push rejected Push to origin/master was rejected
这个问题是我们在推的时候被拒绝了
控制台报错:
18:46:19.665: [zengqingqingandluoxuwen] git -c credential.helper= -c core.quotepath=false -c log.showSignature=false push --progress --porcelain origin refs/heads/master:refs/heads/master --set-upstream
error: failed to push some refs to 'https://gitee.com/princess-qingqing-ovo/ZengZengZengZhuZhu.git'
To https://gitee.com/princess-qingqing-ovo/ZengZengZengZhuZhu.git
hint: Updates were rejected because the remote contains work that you do
! refs/heads/master:refs/heads/master [rejected] (fetch first)
hint: not have locally. This is usually caused by another repository pushing
Done
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.
错误信息表明,当你尝试将本地的 master 分支推送到远程仓库的 master 分支时,操作被拒绝了。原因是因为远程仓库的 master 分支上有一些你在本地没有的工作内容(即提交)。这通常是因为其他人在你推送之前已经向这个分支推送了提交。
要解决这个问题,你需要先将远程仓库的最新更改拉取(fetch)到你的本地仓库,然后将这些更改合并(merge)或变基(rebase)到你的本地分支中。以下是具体的解决步骤:
1. 拉取远程分支的更改:
打开命令行,进入你的项目目录,然后运行以下命令来拉取远程仓库的最新更改:
bash1:git fetch origin
这条命令会获取远程仓库的最新信息,但不会自动合并或修改你本地的任何工作。
2. 合并或变基你的更改:
接下来,你需要将远程分支的更改合并到你的本地分支。你可以选择使用 merge 或 rebase。
使用 merge:
运行以下命令将远程分支的更改合并到你的本地 master 分支:
bash:
git checkout master
git merge origin/master
如果在合并过程中出现冲突,你需要手动解决这些冲突,然后提交合并结果。
使用
rebase(如果你想要保持一个线性的提交历史):
运行以下命令将你的本地分支的提交变基到远程分支的最新提交上:
bash:
git checkout master
git rebase origin/master
同样,如果在变基过程中出现冲突,你需要手动解决这些冲突,然后继续变基过程。
推送你的更改:
完成合并或变基后,你的本地分支现在应该包含了远程仓库的最新更改和你的本地更改。现在你可以尝试再次推送你的本地分支到远程仓库:
bash:git push origin master
如果你想要避免在推送之前手动拉取和合并远程更改,你可以考虑使用 git pull 命令,这个命令实际上是 git fetch 和 git merge(或 git rebase,取决于你的配置)的组合:
bash:git pull origin master
这条命令会拉取远程分支的更改,并尝试将它们合并到你的本地分支。然后你可以直接推送你的更改。
记得在进行拉取和推送操作之前,确保你的工作目录是干净的(没有未提交的更改),或者至少你了解如何处理潜在的合并冲突。