Git上fork后的代码仓库如何与原仓库进行同步

问题场景:最近公司项目组不允许个人在远程仓库建分支,要求每个人fork一个仓库,以后就在自己fork的仓库里提交代码,通过pull request将代码合并到主仓库。
这里的问题在于,原来的主仓库更新后自己fork的仓库并不会自动同步,导致两个仓库的版本不一致。

1.复制项目到自己的仓库

在原项目的地址,比如https://gitee.com/A/xxxx.git上,点击fork按钮,即将项目复制到了自己的仓库中,地址是https://gitee.com/B/xxxx.git

2.下载项目到本地

下载到本地的项目会有一个默认的远程名origin,但这个远程名并不指向A仓库,而是指向自己fork的B仓库,也就是说之后进行的pull、push操作都是在B仓库上进行的。这个时候就需要将A、B两个仓库进行关联了

3.关联两个仓库

执行命令git remote -v 查看远程仓库路径,如果只返回了两行结果,说明这时A、B两个仓库还未进行关联

origin  https://gitee.com/B/xxxx.git (fetch)
origin  https://gitee.com/B/xxxx.git (push)

执行命令git remote add upstream https://gitee.com/A/xxxx.git将A仓库设为B的上游代码库,upstream的名称可以随便取,写abc也可以,之后B就用upstream这个名字与A进行联系。再次查看远程仓库路径,检查是否设置成功

upstream		https://gitee.com/A/xxxx.git (fetch)
upstream		https://gitee.com/A/xxxx.git (push)
origin  https://gitee.com/B/xxxx.git (fetch)
origin  https://gitee.com/B/xxxx.git (push)
4.拉取合并代码

执行命令git fetch upstream获取A上的更新(此时并不会修改本地代码)。然后执行git merge upstream/master将代码合并到自己的master分支上。或者直接使用git pull upstream master命令。

5.push代码到fork的仓库

通过之前的操作,只是将自己的本地库和原来的远程库进行了同步,所以还需要将fork的仓库也进行同步才行。git push origin master,将代码push到B仓库,到这里才算将代码全部同步。

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页