GitHub 的 Fork 是什么意思?

来源:互联网 发布:淘宝上买玻璃杯 编辑:程序博客网 时间:2024/04/30 05:19
相当于你在原项目的主分支上又建立了一个分支,你可以在该分支上任意修改,如果想将你的修改合并到原项目中时,可以pull request,这样原项目的作者就可以将你修改的东西合并到原项目的主分支上去,这样你就为开源项目贡献了代码,开源项目就会在大家共同的努力下不断壮大和完善


作者:李博洋
链接:https://www.zhihu.com/question/20431718/answer/18040919
来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

上面说的都是局部,其实是forking 工作流的一个功能。
<img src="https://pic3.zhimg.com/dadbcef0bca3d2eb68ef6009f45361e2_b.png" data-rawwidth="565" data-rawheight="355" class="origin_image zh-lightbox-thumb" width="565" data-original="https://pic3.zhimg.com/dadbcef0bca3d2eb68ef6009f45361e2_r.png">


作者:李雨泽
链接:https://www.zhihu.com/question/20431718/answer/72009768
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

作者:李鼎
链接:https://www.zhihu.com/question/20431718/answer/74250205
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

GitHub中Fork 即是 服务端的仓库克隆,包含了原来的仓库(即upstream repository,上游仓库)所有内容,如分支、Tag、提交;代码托管服务(如Github、BitBucket)提供了方便的完成Fork操作的功能(在仓库页面点一下Fork按钮)。这样有了一个你自己的可以自由提交的仓库,然后可以通过的PullRequest把你的提交贡献给原仓库。

而对于原仓库Owner来说,鼓励别人Fork自己的仓库,通过PullRequest给自己的仓库做贡献,也能提高了自己仓库的知名度

要更多地了解GitHub中Fork ,参见本人的中文译文:1.《Forking工作流》 github.com/oldratlee/tr

<img src="https://pic4.zhimg.com/v2-ba2bd4a27309817623b56acae1939767_b.png" data-rawwidth="400" data-rawheight="344" class="content_image" width="400">

2. 以及《Pull Request工作流》oldratlee/translations 3. 各个相关的典型工作流的体系综述 参见:《Git工作流指南》 github.com/oldratlee/tr


--- 分 --- 割 --- 线 ---展开来说明,如下:


1. 先简单地说说一下词源

以方便从常见简单的意思 理解到 引申比喻的意思~

Fork 的本义是 叉子(名词)

<img src="https://pic2.zhimg.com/37c8a551c139e20502088d978d4529cd_b.png" data-rawwidth="500" data-rawheight="103" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic2.zhimg.com/37c8a551c139e20502088d978d4529cd_r.png">

比较自然的引申成 分叉(动词) ,就像上面叉子,从左到从右,一条线变成多条了。

更多 词含义参见 fork是什么意思_fork在线翻译


2. 在计算机中,Fork一词的使用

2.1 Git/GitHub仓库克隆

Git/GitHub 用户下面的图 来表达 Fork:分叉、克隆 出一个(仓库的)新拷贝。

<img src="https://pic1.zhimg.com/3c13b2d3ddbf178b4debfea57644e520_b.png" data-rawwidth="256" data-rawheight="256" class="content_image" width="256">

要了解GitHub中Fork的话 ,如 @李雨泽 回答中所说的,其实是要理解的是 forking 工作流,参见本人的中文译文《Forking工作流》github.com/oldratlee/tr,以及相关的典型工作流 《Git工作流指南》 oldratlee/translations

2.2 Linux 的 Fork 函数

运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程,这两个进程中的线程继续执行,就像是两个用户同时启动了该应用程序的两个副本。# 详见fork_百度百科

Fork 函数的命名所表达含义/比喻 和 GitHub中Fork 类似。可见,Fork一词在计算机界 这样的用法 也是 由来已久。# Fork 函数 具体命名出现的时间 还没有考证,欢迎 Linux高手给出考证。

3. 为什么Fork会火起来( 有些和楼主本义无关的闲话 :)

在『码农』圈 Fork一词,现在确实很火,当然和『全球最大的同性交友网站的GitHub』流行而大大提高出镜率有关系,常常可以看到『Fork me』这个词,鼓励别人Fork自己的仓库,通过PullRequest给自己的仓库做贡献,也是提高了自己仓库的知名度。# 关于 PullRequest 参见oldratlee/translations

另外,个人觉得的原因是:

1. Fork 一词 谐音了 『F*ck』,『Fork(F*ck) me』能体现自己的幽默态度。有Sex暗示的内容总是容易让人兴奋和记住,人的本性,哈哈

2. Fork也是有那方面的含义:Forking - A sexual act.



原创粉丝点击