git fork和clone的处理

fork:在github页面,点击fork按钮。将别人的仓库复制一份到自己的仓库。
fork的协作流程

clone:将github中的仓库克隆到自己本地电脑中。


图片.png

clone和fork的场景

没有把我们添加为项目合作者的前提下,我们将A的某个仓库名为“a”的仓库clone到自己的电脑中,在自己的电脑进行修改,但是我们会发现我们没办法通过push将代码贡献到B中。

所以要想将你的代码贡献到B中,我们应该:

在A的仓库中fork项目a(此时我们自己的github就有一个一模一样的仓库a,但是URL不同)将我们修改的代码push到自己github中的仓库B中pull request ,主人就会收到请求,并决定要不要接受你的代码也可以可以申请为项目a的contributor,这样可以直接push。

fork了别人的项目到自己的repository之后,别人的项目更新了,我们fork的项目怎么更新?

配置upstream上游仓库的依赖

upstream分支是用于同步上游仓库的,可以同步其他人对上游仓库的更改

git remote add upstream [上游仓库地址]

这时候用git remote 可以查看远程分支,git remote -v 可以查看具体路径

这时候应该有origin、upstream两种分支且分别有fetch和push的路径,origin是你的远程库,upstream是你的上游仓库

使用fetch+merge获取fork源的更新

fetch+merge与pull效果一样。但是要多用fetch+merge,这样可以检查fetch下来的更新是否合适。pull直接包含了这两步操作,如果你觉得网上的更新没有问题,那直接pull也是可以的。

从上游仓库 fetch 分支和提交点,传送到本地,并存储在一个本地分支 upstream/master

git fetch upstream

切换到本地的开发分支[如果在master上开发也可以]

git checkout master

合并更新到本地: upstream/master 与 本地master

git merge upstream/master

进行fork项目的合并Pull Request

Pull Request 是两个仓库提交变更的一种方式,通常用于 fork 仓库与被 fork 仓库的差异提交,同时也是一种非常好的团队协作方式

在自己的github上找到pull request;如果是gitlab,找到merge request新建将自己修改的代码推送到原项目进行审核。

选择对应的远程库和对应的分支点击COMPARE BRANCHES按钮,添加相应的请求合并信息

对于 Pull Request 中的 bug 修复或者任何更新动作,均不必要提交新的 Pull Request,仅仅只需要推送到您提交 Pull Request 的分支上,稍后我们后台会自动更新这些提交。

推荐阅读更多精彩内容