从github远程仓库fork后本地仓库如何和源仓库同步

从github上fork代码到本地后,我们会把代码推到我们本地的仓库去,进行相应的开发和修改,若github的源仓库上做了新的改动和bugfix,我们想把源仓库的修改同步到我们的本地分支,并推送到本地的私有仓库,该怎么做呢:

  1. 先创建上游源仓库地址:
    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)
  1. 添加完成以后可以将远程代码同步到本地:
# 会将远程代码同步到本地
git fetch upstream 
  1. 代码合并,切换到相应的本地分支,选择相应的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
  1. 解决冲突后,将合并后的代码推送到本地分支,或是自有的仓库中去,若远端都是github作为仓库地址的话,github提供了这种项目merge的操作:
    在code界面,选择new pull request ;
    compare across forks 选择相应的分支进行比较同步

你可能感兴趣的:(从github远程仓库fork后本地仓库如何和源仓库同步)