GitHub提交疑问:他人远程提交内容是否会被覆盖?如何合并双方修改
问题解答
直接提交的后果
如果你直接执行git push,大概率会被Git拒绝——因为远程仓库的提交历史和你的本地已经分叉。但要是强行用git push --force,远程仓库里他人的提交会被你的代码完全覆盖,直接导致别人的工作丢失,绝对不能这么操作。
合并双方修改的正确步骤
要保留彼此的修改,得先把远程最新代码同步到本地,处理完可能的冲突后再推送:
暂存本地未提交的修改
如果你的本地修改还没提交,先把它们临时存起来:git stash后续可以用
git stash pop恢复这些修改。拉取远程最新代码
切换到你的工作分支(比如main),拉取远程的最新提交:git checkout main git pull origin maingit pull会自动把远程代码合并到本地分支,没有冲突的话这一步就完成了基础合并。恢复本地修改并处理冲突
用下面的命令恢复之前暂存的本地修改:git stash pop如果Git提示文件冲突,打开冲突文件,找到
<<<<<<<、=======、>>>>>>>标记的部分,手动调整代码,保留双方需要的内容。提交合并后的代码
解决完冲突后,暂存修改并提交:git add . git commit -m "合并远程更新与本地修改"推送到远程仓库
最后把合并好的代码推送到远程:git push origin main
如果你偏好更整洁的提交历史,也可以用rebase方式拉取:
git pull --rebase origin main
这会把你的本地提交放到远程最新提交的后方,同样需要处理可能的冲突,之后再推送即可。
内容的提问来源于stack exchange,提问作者tom01
相关产品推荐
相关产品推荐

