团队协作,为了规范,一般都是fork组织的仓库到自己帐号下,再提交pr,组织的仓库一直保持更新,减少对项目库的直接操作。
首先我们预览流程脑图为:
下面介绍如何保持自己fork之后的仓库与上游仓库同步。以我 fork 团队的前端仓库为例
注意:此时clone的项目是B分组下的项目,否则会出错
git clone git@xxx.gitlab.com:frontend/xxx.gitlab.io.git
cd work/demo
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
出现如下情况
这时候我们就需要刚才添加的upstream
删除掉,然后重新添加,此处也是我遇到的坑
git remote remove upstream
紧接着运行
git remote add upstream git@xxx.gitlab.cn:front-end/demo.git
之后运行下面几条命令,就可以保持本地仓库和上游仓库同步了
方案一
更新代码,并且输出结果
git pull upstream develop
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库上申请一次pull reques
由Fork库的master到原库的某个分支上,进行合并。
到这就完成了利用Fork库进行开发的整个流程
我们也可以直接由本地库push到原库上:
git push 原库名 分支名
另外该方法是较费劲的一种更新办法
https://www.zhihu.com/question/20393785/answer/30725725
https://segmentfault.com/q/1010000002590371
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。