zl程序教程

您现在的位置是:首页 >  其他

当前栏目

GitHub的Watch、Star、Fork科普贴

2023-03-15 23:25:22 时间

互联网时代的程序员,几乎无人不知,无人不晓GitHub,无论是学习借鉴,还是协作开发,他都给我们提供了很多便利,GitHub上的每个项目,都有这几个图标按钮,Watch、Star、Fork,

一开始接触,确实不太理解他们的作用,我们来科普下。一个初次看到的项目,通常是这个状态,

Watch

翻译过来可以称之为观察,初始状态是Unwatch,点击就可以看到如下的列表,

默认每一个用户都是处于Not watching的状态,当你选择Watching,表示你以后会关注这个项目的所有动态,以后只要这个项目发生变动,如被别人提交了pull request、被别人发起了issue等等情况,都会在自己的个人通知中心,收到一条通知消息,如果你设置了个人邮箱,那么你的邮箱也可能收到相应的邮件。如果不想接受这些通知,那么点击 Not Watching 即可。

Star

翻译过来应该是星星,但是这个翻译没任何具体意义,这里解释为"关注"或者"点赞"更合适,当你点击star,表示你喜欢这个项目,或者通俗点,可以将他理解成朋友圈的点赞,表示对这个项目的支持。

但相比朋友圈的点赞,GitHub里面会有一个列表,专门收集了你所有star过的项目,点击GitHub个人头像,可以看到your stars的条目,点击就可以查看你star过的所有项目了,

但是,在你的star列表很容易出现这样的问题,就是你可能star成百上千个项目怎么办。这时,如果GitHub可以提供一个分类功能该多好,就像微博网页版的收藏,你在收藏的时候可以设置tag,这样设置的好处是,以后再次查找项目时,可以根据归类查找,但是不知道GitHub的产品经理是怎么想的,GitHub本身没有这个功能。

但是GitHub从来也不缺有思想有执行力的程序员,有人做了一个Chrome插件,这个插件可以对GitHub中所有star的项目进行分类,如下所示,注意看图片右侧,多了一个Filter by tag列表,

下载地址,

https://chrome.google.com/webstore/detail/github-stars-tagger/aaihhjepepgajmehjdmfkofegfddcabc

尽管这个插件已经很好了,但是还是有缺点,你只能star完项目了,去star列表后,才能对项目打tag,这是很不方便的。

GitHub可能自己发现了检索的问题,现在GitHub增加了一个类似的功能,可以给自己给自己的项目设置topic,相当于自己给自己的项目设置了一个tag,搜索的时候只需要在GitHub输入"topic topic名称",

Fork

当选择fork,相当于你自己有了一份原项目的拷贝,当然这个拷贝只是针对当时的项目文件,如果后续原项目文件发生改变,你必须通过其他的方式去同步。

一般来说,我们不需要使用fork这个功能,除非有一些项目,可能存在bug,或者可以继续优化的地方,你想帮助原项目作者去完善这个项目或者单纯的想在原来项目基础上维护一个属于自己项目,那么就可以fork一份项目下来,然后自己对这个项目进行修改完善,当你觉得项目没问题了,你就可以尝试发起pull request给原项目作者了,然后就静静等待他的merge邮件通知。

可能很多人将fork当成了收藏一样的功能,每次看到一个好的项目就先fork,

因为这样,就可以我的repository(仓库)列表下查看fork的项目了,其实完全可以使用star来达到这个目的。

GitHub中Fork是服务端的代码仓库克隆(即新克隆出来的代码仓库在远程服务端),包含了原来的仓库(即upstream repository,上游仓库)所有内容,例如分支、Tag、提交。这样有了一个你自己的可以自由提交的远程仓库,然后可以通过的Pull Request将你的提交贡献回原仓库。而对于原仓库Owner来说,鼓励别人Fork他的仓库,通过Pull Request能给他的仓库做贡献,也是提升了原仓库的知名度。

Fork的本义是叉子(名词),

比较自然的引申成分叉(动词),就像上面叉子,从左到右,一条线变成多条了。Git/GitHub用下面的图来表达Fork:分叉、克隆出一个(仓库的)新拷贝,

下图从团队协作和开源协作角度说明了Fork,

网上找到了一些GitHub的使用建议,

1. 对于一些可能会经常发生变化的会不定期更新的好项目,多使用watch,如果有任何新问题,都可以收到通知,能看别人的回答,还可以回答别人提出的问题,这是一个很好的学习成长方式。但是如果watch多了,你就可能会被无休止的邮件通知扰乱(邮件通知可设置),因为被watch项目有任何留言、PR等更新都会触发通知,所以做好权衡。

2. 喜欢一个项目就star他,精神上的支持。

3. 修改开源项目就使用fork,这样就可以在原项目的基础上,对项目进行修改提交,现在你是这个项目的主人。

参考链接,

https://www.cnblogs.com/bibi-feiniaoyuan/p/9519467.html

https://www.zhihu.com/question/20431718