对Github中fork功能使用的误解
什么是Clone
比较常使用的指令是 git clone
类似于Download,可以理解为将云端代码下载到我们自己电脑的本地
git clone + 地址
什么是Watch
类似于关注。后续项目有任何更新都会通知你,如果设置了邮件还会邮件通知
什么是Star
类似于收藏。收藏了就是starred,也会点一个赞。star越多项目越厉害
什么是Fork
当选择 fork,相当于你自己有了一份原项目的拷贝,当然这个拷贝只是针对当时的项目文件,如果后续原项目文件发生改变,你必须通过其他的方式去同步。
fork 就是将开源项目存储到我们自己的云端作为一个分支,我们可以进行一些bug修复或功能修改然后git pull 到开源项目,如果开源项目认可,可以将你的修改合并到他们的分支。
如果我们想要修改他人github项目的话,我们直接git clone代码到本地是不能pull的,所以我们使用fork,先把代码复制到自己的github仓库,然后git clone到本地修改,然后在提交pull(这里的pull是pull到自己github仓库了,我们自己的github仓库中的代码是fork源的一个分支),这时候我们想要把修改的代码提交给他人的话,就可以在自己github上pull,等其他人看到后就可以把代码做一个合并
一般来说,我们不需要使用 fork 这个功能
除非有一些项目,可能存在 bug 或者可以继续优化的地方,你想帮助原项目作者去完善这个项目或者单纯的想在原来项目基础上己维护一个属于自己项目
如何更新fork的仓库
merge功能
clone和fork的区别
fork:将别人的仓库复制到自己的仓库
clone:将github的仓库复制到自己本地的电脑
fetch和pull有啥区别
pull = fetch + merge
虽然pull直接包含了两步操作,还是建议多用fetch + merge,这样可以检查fetch下来的更新是否合适(虽然直接pull也是可以的)
误区
很多人错误的在使用 fork。很多人把 fork 当成了收藏一样的功能,包括一开始使用 github 的我,每次看到一个好的项目就先 fork,因为这样,就可以我的 repository(仓库)列表下查看 fork 的项目了。
其实你完全可以使用 star 来达到这个目的。
使用
- 对于一些可能会经常发生变化的会不定期更新的好项目 多使用 watch.
- 喜欢一个项目就 star
- 修改开源项目就使用 fork,这样你就可以在原项目的基础上,对项目进行修改
Git可以多人协作完成项目,或者我写完一个项目可以开源到GitHub上,看到的小伙伴fork我的代码之后发现有BUG或者有一个地方有更好的算法可以解决,他可以在他自己的仓库里面修改源码,修改好之后他可以pull request,这样我就可以看到什么地方修改了,如果我觉得他的算法可行就可以把他的代码Merge到我的项目里面,简单说就帮我修复bug了,不用我自己动手。
git clone 就是他们clone到本地进行修改,然后他可以提交到clone的源码中。