从github远程仓库fork后本地仓库如何和源仓库同步
2020-04-20 本文已影响0人
时彬斌
从github上fork代码到本地后,我们会把代码推到我们本地的仓库去,进行相应的开发和修改,若github的源仓库上做了新的改动和bugfix,我们想把源仓库的修改同步到我们的本地分支,并推送到本地的私有仓库,该怎么做呢:
- 先创建上游源仓库地址:
git remote add upstream https://github.com/xxx/xxx.git
可以先查看是否已经有upstream 信息
git remote -v
origin https://gitlab.BBB.com/BBB/BBB.git (fetch)
origin https://gitlab.BBB.com/BBB/BBB.git (push)
upstream https://github.com/xxx/xxx.git (fetch)
upstream https://github.com/xxx/xxx.git (push)
- 添加完成以后可以将远程代码同步到本地:
# 会将远程代码同步到本地
git fetch upstream
- 代码合并,切换到相应的本地分支,选择相应的upstream分支和当前本地分支进行merge操作
git checkout master
git merge upstream/master
# 这样就相当于将upstream/master 的代码和并到本地分支master中
# merge 的时候有可能会出现以下错误:
fatal: refusing to merge unrelated histories
# 解决办法,加上一个参数即可:
git merge upstream/master --allow-unrelated-histories
- 解决冲突后,将合并后的代码推送到本地分支,或是自有的仓库中去,若远端都是github作为仓库地址的话,github提供了这种项目merge的操作:
在code界面,选择new pull request ;
compare across forks 选择相应的分支进行比较同步