如何将GitHub main分支所有内容完整同步到本地个人分支?
问题原因
本地个人分支基于首次提交的初始commit创建,未同步协作者后续推送到远程main分支的更新。Git切换分支时会自动将工作区文件替换为当前分支对应提交的快照,切到旧个人分支时,工作区仅保留初始commit内的文件,协作者后续新增、修改的内容在该旧快照中不存在,就会表现为文件被删除。
操作步骤
按以下流程操作,即可将Git仓库的全量最新内容同步到个人分支对应的工作目录:
- 切回本地main分支,拉取远程仓库所有最新提交,保证本地main分支与远程main分支内容完全一致
git checkout main git pull origin main
- 切换到个人开发分支
git checkout 个人分支名称 - 将最新main分支的全量内容合并到个人分支,合并完成后工作目录就会同步所有协作者提交的最新文件,不会再出现文件缺失问题
git merge main
合并过程中如果提示文件冲突,打开标记了冲突的文件,删除冲突标记(
<<<<<<<、=======、>>>>>>>相关行),保留需要的正确内容后,执行以下命令即可完成合并:git add 处理完冲突的对应文件名 git commit -m "merge latest main to personal branch"
可选简化方案
如果本地旧个人分支还没有任何自行开发的有效提交,可以直接删除旧分支,基于最新main分支重新创建个人分支,省去合并步骤,切完后的工作目录直接就是全量最新内容:
# 确保当前停在已拉取最新内容的main分支上 git branch -D 旧个人分支名称 git checkout -b 新个人分支名称
注意:每次切换分支前,建议将当前分支未提交的修改要么通过git commit提交保存,要么通过git stash暂存,避免切分支时出现文件修改冲突、内容异常丢失的问题。
内容的提问来源于stack exchange,提问作者Alin99
相关产品推荐
相关产品推荐

