如何在不创建Fork的情况下更新本地克隆的Git仓库
如何同步原GitHub仓库变更且保留本地修改?
当然可行!这是Git日常使用里特别常见的场景,完全不用担心会覆盖你本地的实验性修改。下面一步步给你讲具体操作:
第一步:拉取原仓库的最新变更(不会影响本地代码)
首先确认原仓库的远程别名,克隆下来默认是origin,你可以用以下命令查看:git remote -v确认后,运行
fetch命令把原仓库的所有最新内容下载到本地,这个操作只会把代码存到本地Git的后台,不会动你当前工作区的文件:git fetch origin第二步:合并原仓库变更到本地分支
假设你当前在本地的main分支(对应原仓库的默认分支),运行合并命令:git merge origin/main如果没有冲突,Git会自动完成合并,你的本地修改就和原仓库的最新代码结合好了。
如果遇到冲突,Git会明确告诉你哪些文件有冲突。打开这些文件,你会看到类似这样的冲突标记:
<<<<<<< HEAD 你的本地修改内容 ======= 原仓库的最新变更内容 >>>>>>> origin/main手动编辑这些文件,保留你需要的内容,删掉冲突标记。编辑完成后,用以下命令标记冲突已解决:
git add <冲突文件名>最后完成合并:
git merge --continue可选:用Rebase让提交历史更整洁
如果你喜欢线性的提交历史,可以用rebase代替merge:git rebase origin/main遇到冲突的处理方式和merge类似:解决冲突后用
git add <冲突文件名>,然后运行git rebase --continue完成操作。注意:rebase会修改提交历史,只适合在本地分支使用,不要对已经推送到公共仓库的分支用这个命令。小技巧:提前暂存本地修改(可选)
如果你有很多未暂存的修改,担心合并时出问题,可以先把本地修改临时存起来:git stash同步完原仓库后,再恢复你的本地修改:
git stash pop
内容的提问来源于stack exchange,提问作者user12779475
相关产品推荐
相关产品推荐

