git fork的使用

1,997 阅读2分钟

一.背景

最近我在github上发现一个很有意思的项目,看了其中相关的源码,而我呢,又很想加入其中,成为这开源项目的贡献者,而我又不可能让项目的作者给我分配一个开发者的权限,所以,这里就用到了 fork这个操作

二.概念

fork 是github上的操作,使用fork功能会在github上,给你创建一个与该项目一样的同名项目。其实就是复制该项目,包括其中的文件,提交的历史,issue,和其他的一些内容,复制后的仓库存放于你自己的github账号下

1.git clone的区别?

有人说,直接把项目拉下来,git clone 不就行了,何必还多此一举,fork一下?请注意,这里操作是跟所处环境不一样的,平常我们在公司开发,可以不用管fork这一步,因为创建这个项目的人,已经把开发权限都给我们了,我们只需要 git clone 下来,然后 push 代码即可。但是,我们如果没有给到我们开发权限,是无法进行push的。而我们又要开发,就需要用到fork这一步

git clone: git命令,将github仓库中的项目克隆到本地电脑中

fork:github网站的操作,将开源项目复制一份到我们github账号下,自己的仓库中

2.用法流程

这里引用一下,网络上的配图流程

image.png

  1. fork一下Joe的github的仓库地址,到我们自己的github仓库下
  2. git clone到本地电脑中
  3. 我们做一些代码的修改
  4. 本地进行commit
  5. push到我们自己的仓库中
  6. 发起Pull request

如果对方接受了我们的pull request,那么我们做的一些修改,就可以合入到他的仓库中了,整个流程就走完了。

三.实操

以我自己的仓库为例,可以试试以下操作

  1. 首先fork自己想要的仓库到自己仓库中

image.png

  1. 这时会发现我们github自己的账号下,多了一个老鼠爱大米的项目,并且有备注:forked from 张杭/老鼠爱大米

image.png

  1. 此时正常的进行git clone 到自己本地中开发修改,之后push回自己的fork仓中
  2. 最后如果想要更新到主仓库,需要pull request

image.png

需要注意的事,如果主仓库更新,fork仓库是不会更新的

此时需要

image.png 之后就可以正常拉取主仓库的更新,并push推送到自己的fork仓库中了