git本地已经有修改但是想同步远程仓库的更新
情况说明:已经本地github仓库上已经修改一部分内容了,但是发现远程仓库更新了,我需要将远程仓库的内容同步到我本地,然后再继续我刚才的修改。
在本地修改了部分代码,包括没有任何commit提交和已经有了部分commit提交的情况
- 暂存本地修改
将你还没提交的修改存入“剪贴板”:
1 | git stash |
- 拉取远程更新
从远程仓库获取最新代码并合并到本地:
1 | git pull origin <你的分支名> #情况1: 本地没有任何commit |
注:
如果想保持提交历史整洁,可以使用
git pull --rebase origin <你的分支名>。如果已经在本地有commit提交了,此时
git pull origin <你的分支名>大概率会有fatal: Need to specify how to reconcile them。是因为你的本地分支和远程分支都有了新的提交,导致它们指向了不同的方向(分叉了)。Git 要求你明确选择如何处理这种分叉。那么想在最新远程代码基础上继续修改的需求,最推荐的做法是使用rebase。这样可以保持提交历史是一条直线。也就是执行1中所说的git pull --rebase origin <你的分支名>恢复本地修改
将刚才暂存的内容取出来:
1 | git stash pop |
- 处理冲突(如果有)
如果远程更新的代码和你刚才修改的代码在同一行,Git 会提示冲突:
打开冲突文件,搜索 <<<<<<<、======= 和 >>>>>>> 标记。
根据实际需求决定保留哪些代码。
解决后,使用 git add <文件名> 标记为已解决。