You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git拉取并合并疑问:本地已提交文件如何合并他人更新?

嘿,我太懂从SVN转Git时那种摸不着头脑的感觉了——毕竟两者的合并逻辑确实差不少!你遇到的git pull没反应、本地文件没变化的问题,大概率是这几个原因,咱们一步步来搞定:

第一步:先确认本地分支和远程分支的关联状态

Git不像SVN会自动默认绑定远程分支,你可以先跑这条命令,看看当前分支的远程关联情况:

git branch -vv

如果输出里你的本地分支旁边没显示对应的远程分支(比如origin/你的分支名),那就是没关联——这时候git pull根本不知道该拉哪个远程分支的更新,自然没动静。

第二步:绑定远程分支并拉取更新

如果确实没关联,先把本地分支和远程对应分支绑定起来:

git branch --set-upstream-to=origin/你的分支名 你的本地分支名

(要是本地分支和远程分支同名,直接简化成git branch --set-upstream-to=origin/当前分支名就行)

绑定完成后再跑git pull,这时候Git就会去拉取远程的最新更新了。如果远程有新提交,会自动尝试合并;要是碰到冲突,也会明确提示你去解决。

第三步:如果还是没反应?先排查远程是否真的有更新

有时候可能是你以为别人已经推了更新,但实际上对方还没提交?可以先刷新一下远程分支的信息:

git fetch origin

然后看看远程分支和本地分支的差异:

git log --oneline 本地分支名..origin/本地分支名

要是这个命令有输出,说明远程确实有你本地没有的提交,这时候直接跑git merge origin/本地分支名就行(其实git pull本质就是git fetch + git merge的组合,分开跑能更清楚看到每一步的变化)。

第四步:冲突处理(如果碰到的话)

如果合并时出现冲突,Git会在终端里告诉你哪些文件有问题。打开这些文件,你会看到类似这样的标记:

<<<<<<< HEAD
你本地写的内容
=======
远程分支的内容
>>>>>>> origin/你的分支名

手动修改这些冲突部分,保留你需要的内容,然后把这些标记删掉。修改完后,用这条命令标记冲突已解决:

git add 冲突的文件名

最后完成合并提交:

git commit

(这时候Git会自动生成合并提交的信息,你直接保存退出就行)

第五步:推送到远程

合并完成后,就可以把本地合并好的版本推送到远程了:

git push

额外提一句:如果以后不想每次都手动绑定分支,在创建本地分支的时候可以用git checkout -b 分支名 origin/分支名,这样创建分支的同时就自动和远程分支绑定了,后续直接git pull、git push就行。

内容的提问来源于stack exchange,提问作者chainastole

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 00:17:29