http://www.jianshu.com/p/6c366b53ea41

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

在每个 github 项目的右上角,都有三个按钮,分别是 watch、star、fork,但是有些刚开始使用 github 的同学,可能对这三个按钮的使用却不怎么了解,包括一开始使用 github 的我也是如此。这篇博客,结合自的理解和使用,说说这三个按钮的用法以及一些个人见解。

如下图所示这是我们经常看到的三个按钮。

从左至右,依次是 watch star fork,下面分别说下他们的具体作用。

watch

watch 翻译过来可以称之为观察,点击 watch 可以看到如下的列表。

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

如下,我 watching 了开源项目android-cn/android-discuss,那么以后任何人只要在这个项目下提交了 issue 或者在 issue 下面有任何留言,我的通知中心就会通知我。如果你配置了邮箱,你还可能会因此不断的收到通知邮件。

如果你不想接受这个项目的所有通知,那么点击 Not Watching 即可。

另外这里有一篇文章讲 如何正确接收 GitHub 的消息邮件,很不错的一篇文章,推荐大家看看。

star

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

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

不过,star 列表很容易出现这样的问题:如果你平时比较爱逛 Github, star 的项目过多后怎么快速查找自己想要的项目怎么办?

这时,如果 github 可以提供一个分类功能该多好,就像微信公众号文章的收藏,你在点击微信菜单中的收藏后,微信会提示你对收藏的文章设置 tag。这样设置的好处是,以后在微信收藏列表中查找项目时,可以根设置的 tag 归类查找,这样查找效率会提高不少。

但是不知道 github 的产品经理是怎么想的,github 本身没有这个功能。但是 github 这个全球最大的程序员社区从来也不缺有思想有执行力的程序员。

这不,现在就有人做了一个 Chrome 插件,这个插件可以对 github 中所有 star 的项目进行分类,如下所示,注意看图片右侧,多了一个 Filter by tag 列表。

下载地址.

尽管这个插件已经很好了,但是还是有缺点,你只能 star 完项目了,然后去 star 列表,才能对项目打 tag,这是很不方便的。真心希望,未来 github 可以自己支持对 star 的 tag 处理。憧憬...

更新

也许是 github 自己也发现了检索的问题,现在 github 增加了一个类似的功能,可以给自己给自己的项目设置 topic. 如下图所示。

topic

给自己的项目设置 topic 后,相当于自己给自己的项目设置了一个 tag ,这样可以方便别人搜索。比如要搜索所有 topic 为 android 的项目,你只需要在 GitHub 搜索时输入 `topic android ` 然后搜索即可。

fork

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

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

然后就静静等待他的 merge 邮件通知了。

我看到很多人错误的在使用 fork。很多人把 fork 当成了收藏一样的功能,包括一开始使用 github 的我,每次看到一个好的项目就先 fork,

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

使用建议

1、对于一些可能会经常发生变化的会不定期更新的好项目 多使用 watch.

比如 android-cn 团队的 android-discuss 项目,

你就可以 watching 它,这里面都是一些关于 Android 技术的交流,如果有任何新问题,你都可以收到通知,你可以查看别人的回答,

你可以回答别人提出的问题,这是一个很好的学习成长方式。

其他值得watch的项目还有很多,比如 github 上很多的 Awesome 系列的项目,如 Awesome-MaterialDesign 等,你 watch 这些项目了,

只要项目新增一些好玩好用的东西,你就会收到通知。

我在知乎上看到有人问这样的问题,说 github 上有哪些值得 watch 的项目,其实有很多,我自己也整理了一些,但是没放到 github.

值得注意的是,如果 watch多了,你可能会被无休止的邮件通知烦死(邮件通知可设置),因为被 watch 项目有任何留言、PR等更新都会触发通知,所以做好权衡。

2、喜欢一个项目就 star 它吧~

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

小细节

有些时候,你看到一个项目的 star 数有很多,你就想知道到底都有那些人 star 了这个项目,或者 fork 了这个项目,

但是环顾一圈,你却找不到一个入口,后来自己不经意的发现,只要`点击 star 傍边的数字`,就可以查看有哪些人 star 了这个项目。

是不是有点意思,现在你就可以去试试,watch、fork上面的数字都是可以点击的,道理一样。

结语

这里只说了关于这三个按钮的使用,github 肯定还有很多使用技巧,欢迎大家多多讨论,互相学习。另外我在 android-cn 的 android-discuss 下面和知乎上

都分别提了类似的问题,大家感兴趣的可以关注下。

Github Github上都有哪些有意思、不为大家熟知的小功能?

知乎 Github上都有哪些有用但不为大家熟知的小功能?

如何用好 github 中的 watch、star、fork的更多相关文章

  1. GitHub中watch、star、fork的作用

    star 的作用是收藏,目的是方便以后查找. watch 的作用是关注,目的是等作者更新的时候,你可以收到通知. fork 的作用是参与,目的是你增加新的内容,然后 Pull Request,把你的修 ...

  2. github中的watch、star、fork的作用

    [转自:http://www.jianshu.com/p/6c366b53ea41] 在每个 github 项目的右上角,都有三个按钮,分别是 watch.star.fork,但是有些刚开始使用 gi ...

  3. 【github&&git】1、github中的watch、star、fork的作用

    [转自:http://www.jianshu.com/p/6c366b53ea41] 在每个 github 项目的右上角,都有三个按钮,分别是 watch.star.fork,但是有些刚开始使用 gi ...

  4. 学习Git的一点心得以及如何把本地修改、删除的代码上传到github中

    一:学习Github的资料如下:https://git.oschina.net/progit/ 这是一个学习Git的中文网站,如果诸位能够静下心来阅读,不要求阅读太多,只需要阅读前三章,就可以掌握Gi ...

  5. (转)如何将本地git仓库上传到GitHub中托管+实践心得

    Git——新手入门与上传项目到远程仓库GitHub(转) - Chen_s - 博客园http://www.cnblogs.com/Chenshuai7/p/5486278.html 注意的问题: 1 ...

  6. 开发人员看测试之运行Github中的JBehave项目

    本文要阐述的主要有两点,一是介绍自动化测试框架JBehave,二是介绍如何在Github上拉项目,编译成myeclipse环境中的项目,并最终导入Myeclipse中运行. JBehave是何物? J ...

  7. 如何刪除GitHub中的repository

    如何刪除一github中的repository,這本該是個非常簡單的操作,可一開始搜的時候,有不少文章比較含糊.這裡就記錄下來吧. 1.訪問https://github.com/settings/pr ...

  8. github 中删除/更名版本库(repository)

    问题描述: github 中版本库创建/删除/更该名称 问题解决:            (1)创建版本库(Repository) 注:        在上图中的+按钮图标指示的是创建版本库的按钮 注 ...

  9. 对github中项目进行更新

    进入本地仓库文件夹,我的仓库名是tufujiegit,然后 进入 git  clone  接着将先前记录下来的地址复制到后面,回车 将下载github中该仓库的所有文件及文件夹,包括.git文件夹在内 ...

随机推荐

  1. Unity制作人物头像小图标和小地图

    人物头像的制作: 在场景中添加人物模型和环境模型 设置人物的layer为Player 在主摄像机的基础上,新建一个次摄像机并将摄像机镜头对准人物面部,调整至合适大小. 设置次摄像机 culling m ...

  2. Java开发工程师(Web方向) - 03.数据库开发 - 第1章.JDBC

    第1章--JDBC JDBC基础 通过Java Database Connectivity可以实现Java程序对后端数据库的访问 一个完整的数据库部署架构,通常是由客户端和服务器端两部分组成 客户端封 ...

  3. Thunder团队第二周 - Scrum会议5

    Scrum会议5 小组名称:Thunder 项目名称:爱阅app Scrum Master:苗威 工作照片: 参会成员: 王航:http://www.cnblogs.com/wangh013/ 李传康 ...

  4. onethink框架显示Access denied for user 'root'@'localhost' (using password: NO)

    本地开发的时候使用的用户名是root,密码为空,它会生成两份.一份在Common/config.php里面,还有一份在Application\User\Conf/config.php 在linux环境 ...

  5. 20172330 2017-2018-1 《Java程序设计》第七周学习总结

    学号 2017-2018-1 <程序设计与数据结构>第七周学习总结 教材学习内容总结 这一章主要是对继承的学习: 继承是组织和创建类的基本技术,概念简单但影响重大,决定着面向对象软件的设计 ...

  6. 一起写一个Android图片轮播控件

    注:本文提到的Android轮播控件Demo地址: Android图片轮播控件 1. 轮播控件的组成部分 我们以知乎日报Android客户端的轮播控件为例,分析一下轮播控件的主要组成: 首先我们要有用 ...

  7. TCP系列14—重传—4、Karn算法和TSOPT的RTTM

    一.Karn算法 在RTT采样测量过程中,如果一个数据包初传后,RTO超时重传,接着收到这个数据包的ACK报文,那么这个ACK报文是对应初传TCP报文还是对应重传TCP报文呢?这个问题就是retran ...

  8. grid++json页面数据传入

    最近遇到一个问题,就是要用Grid++做页面数据报表打印,但是翻了Grid++文档就是没有直接从页面上传数据的,都是要加载txt文档,填写txt文档的url.自己尝试直接页面上传JSON数据到Grid ...

  9. DVD与CD区别

    经常听朋友说什么DVD什么CD什么的,不知道到底有什么区别,专门百度找了下,找到以下资料 ======================================================= ...

  10. netbeans调试配置

    apache端口8050,xdebug端口9000 1.把项目放到apache的htdocs下(一定要放在htdocs上,要么调试的时候xdebug会一直卡在“等待连接中”) 2.把php_xdebu ...