前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GitHub的Watch、Star、Fork科普贴

GitHub的Watch、Star、Fork科普贴

作者头像
bisal
发布2021-11-24 09:16:59
6970
发布2021-11-24 09:16:59
举报

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

f04c61534b9ea6a28236733702d13582.png
f04c61534b9ea6a28236733702d13582.png

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

874dc2823fcbadc0582a1e95cfacac49.png
874dc2823fcbadc0582a1e95cfacac49.png

Watch

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

e5ff5be29aeb33bac3b9a97950e7942c.png
e5ff5be29aeb33bac3b9a97950e7942c.png

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

Star

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

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

74abe59274e95b93e01d43517de0c5c1.png
74abe59274e95b93e01d43517de0c5c1.png

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

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

c1213eba80918977976a6c482f42b90b.png
c1213eba80918977976a6c482f42b90b.png

下载地址,

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

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

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

fa98db6c4b897d49f03e227b18ec87b2.png
fa98db6c4b897d49f03e227b18ec87b2.png

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的本义是叉子(名词),

2e9e14a898a8823fd5c94bac22d70650.png
2e9e14a898a8823fd5c94bac22d70650.png

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

1f18496f9086565c3e3031844861de7a.png
1f18496f9086565c3e3031844861de7a.png

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

ace57aa4e743e4ddd353deeaa3e9b21a.png
ace57aa4e743e4ddd353deeaa3e9b21a.png

网上找到了一些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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-11-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Fork
相关产品与服务
Prowork 团队协同
ProWork 团队协同(以下简称 ProWork )是便捷高效的协同平台,为团队中的不同角色提供支持。团队成员可以通过日历、清单来规划每⽇的工作,同时管理者也可以通过统计报表随时掌握团队状况。ProWork 摒弃了僵化的流程,通过灵活轻量的任务管理体系,满足不同团队的实际情况,目前 ProWork 所有功能均可免费使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档