方式一:先 git fetch 再 git merge 或 git rebase
-
git fetch:只从远程仓库获取最新提交信息,不进行合并操作。
收起
bash
git fetch origin
-
git merge:将远程分支的更新合并到本地分支,会创建一个新的合并提交。
收起
bash
git merge origin/master
-
git rebase:将本地的提交移动到远程分支的最新提交之后,使提交历史更加线性。
收起
bash
git rebase origin/master
如果在 git merge 或 git rebase 过程中出现冲突,解决冲突的方法和 git pull 时类似,解决后继续完成合并或变基操作。
步骤二:再次尝试推送
完成拉取和合并操作后,再次尝试将本地的 master 分支推送到远程仓库:
收起
bash
git push -u origin master
-u 参数会将本地的 master 分支和远程的 master 分支关联起来,以后再次推送时可以直接使用 git push 命令。
步骤三:强制推送(谨慎使用)
如果你非常确定要覆盖远程仓库的提交历史,可以使用强制推送命令,但这是一个危险操作,因为它会永久删除远程仓库中没有在本地仓库中的提交。
收起
bash
git push -f origin master
在执行强制推送之前,请确保你已经和团队成员沟通好,避免数据丢失。
综上所述,建议优先使用正常的拉取和合并方式来解决冲突,保证提交历史的完整性。只有在必要情况下才使用强制推送。