阅读 134

FAQ-保持Fork之后的项目和上游同步

前言:

团队协作,为了规范,一般都是fork组织的仓库到自己帐号下,再提交pr,组织的仓库一直保持更新,减少对项目库的直接操作。

首先我们预览流程脑图为:

image.png


下面介绍如何保持自己fork之后的仓库与上游仓库同步。以我 fork 团队的前端仓库为例

言外之意就是A->B的过程

1、要派生一个项目,请单击fork按钮,如下所示

image.png

2、分叉项目之后,您需要通过单击它将分叉项目添加到一个fork组

image.png

3、接下来的一段时间内,它将开始处理一个项目,如下图所示

image.png

4、它会在项目过程完成后显示成功信息

image.png

5、然后就可以在自己的帐号下 clone 相应的仓库

注意:此时clone的项目是B分组下的项目,否则会出错

git clone git@xxx.gitlab.com:frontend/xxx.gitlab.io.git复制代码

6、进入到我们的项目目录

cd work/demo复制代码

7、使用 git remote -v 查看当前的远程仓库地址,输出如下:

origin  git@xxx.gitlab.com:frontend/xxx.gitlab.io.git (fetch)
origin  git@xxx.gitlab.com:frontend/xxx.gitlab.io.git (push)复制代码

可以看到从自己帐号 clone 下来的仓库,远程仓库地址是与自己的远程仓库绑定的(这不是废话吗)

接下来添加原库的远程仓库:运行

git remote add upstream https://xxx.gitlab.com/frontend/demo.github.io.git复制代码

这条命令就算添加一个别名为 upstream(上游)的地址【为对远程仓库起的别名】,指向之前 fork 的原仓库地址。git remote -v 输出如下:

origin  git@xxx.gitlab.com:frontend/xxx.gitlab.io.git (fetch)
origin  git@xxx.gitlab.com:frontend/xxx.gitlab.io.git (push)
upstream        https://xxx.gitlab.com/frontend/demo.github.io.git (fetch)
upstream        https://xxx.gitlab.com/frontend/demo.github.io.git (push)复制代码

注意如果remote add 地址是https的地址档进行git pull upstream develop出现如下情况

image.png

这时候我们就需要刚才添加的upstream删除掉,然后重新添加,此处也是我遇到的坑

git remote remove upstream复制代码

紧接着运行

git remote add upstream git@xxx.gitlab.cn:front-end/demo.git复制代码

之后运行下面几条命令,就可以保持本地仓库和上游仓库同步了

方案一

更新代码,并且输出结果

git pull upstream develop复制代码

image.png

git fetch upstream 更新原始仓库上的所有分支和tab

git checkout master

git merge upstream/master

接着就是熟悉的推送本地仓库到远程仓库

将更新后的本地库通过add,commit,push,一条龙服务上传到自己的Fork库,实现对Fork库的更新

步骤一:

git add . && git commit -m "描述"复制代码

步骤二:

注意:这里push到的是Fork库的master,origin是Fork远程仓库的别名,是默认的。

git push origin master复制代码

这样就更新了远程fork库

将本地库的更新到Fork库后,合并到原库,实现提交自己的代码到原库

直接在Fork库上申请一次pull reques

image.png
由Fork库的master到原库的某个分支上,进行合并。

image.png到这就完成了利用Fork库进行开发的整个流程

最后:

我们也可以直接由本地库push到原库上:

git push 原库名 分支名复制代码

另外该方法是较费劲的一种更新办法

其他感兴趣的文章

www.zhihu.com/question/20…

segmentfault.com/q/101000000…

www.cnblogs.com/kidsitcn/p/…

gitlab.com/gitlab-org/…


关注下面的标签,发现更多相似文章
评论