git的fork工作流

2020-05-20  本文已影响0人  那杯咖啡没加糖

什么是fork

fork通常来说,就是copy。例如:某一个团队开发了一个项目ProjectA,并上传到了github上,这时小明看到了该项目,并且很感兴趣,也想贡献自己的一份力量,但是小明并不能直接把自己的修改直接merge进去,于是就出现了fork,小明可以复制一份该项目的代码到自己的github上,这样他就可以在自己的github仓库中修改代码,当修改完代码后,他可以提交pull request(PR),当该团队成员看到了小明的PR,会有专人审核该PR,如果觉得ok,那么就可把小明贡献的代码merge进来,这样就完成了共同协作开发。

fork工作的流程

下面以AVBlog为例来说明:

  1. 点击smartyuge/ AVBlog项目的fork


    image.png
  2. 自己的github中就会出现该项目LuckeX / AVBlog


    image.png
  3. 使用git clone把自己仓库中的项目clone到本地

  4. 在本地添加upstream的地址
    使用 git remote add upstream [url] ,其中,upstream是项目url的简称,方便记忆,你可以随便自己起

    image.png
  5. 代码贡献
    一般开发新功能或者修复bug都会另新建branch来写代码,然后merge进master分支。

git fetch upstream # 取回upstream远程仓库的所有分支
git rebase master # 将取回的分支中的master分支变基到当前分支(我的当前分支是master)
git checkout -b add_features # 使用当前分支来创建新的分支add_features,并切换到该分支
vim Test.md # 这是我修改的,添加了Test.md文件
git add Test.md #添加到暂存区
git commit -m "add Test.md" #commit 一下
git push origin add_features # 把当前commit推送到origin的add_features分支(如果没有该分支,则会创建)

当完成以上时,打开github会出现:

image.png

切换到add_features,点击New pull request:

image.png

注意:我们是从master分支创建的基础分支,然后修改代码,所以我们的add_features分支对用的是upstream/master。再点击Create pull request就可以提交pr了(通常上图的右边会有reviewer,需要reviewer approve才能merger你的pr)。

  1. 最后就是删除刚刚创建的本地和远程分支了
git branch -D add_features # 删除本地add_features分支
git push origin :add_features # 删除远程origin仓库add_features分支,因为这相当于把空的分支push到origin/add_features,就是删除啦
上一篇下一篇

猜你喜欢

热点阅读