github中的watch、star、fork的作用

在每個 github 項目的右上角,都有三個按鈕,分別是 watch、star、fork,但是有些剛開始使用 github 的同學,可能對這三個按鈕的使用卻不怎么了解,包括一開始使用 github 的我也是如此,這篇博客,結合自己的理解和使用,說說這三個按鈕的用法以及一些個人見解。

如下圖所示這是我們經常看到的三個按鈕。
在這里插入圖片描述
從左至右,依次是 watch star fork,下面分別說下他們的具體作用。

watch
watch翻譯過來可以稱之為觀察,點擊watch可以看到如下的列表。
在這里插入圖片描述
默認每一個用戶都是處于Not watching的狀態,當你選擇Watching,表示你以后會關注這個項目的所有動態,以后只要這個項目發生變動,如被別人提交了pull request、被別人發起了issue等等情況,

你都會在自己的個人通知中心,收到一條通知消息,如果你設置了個人郵箱,那么你的郵箱也可能收到相應的郵件

如下,我 watch 了開源項目android-cn/android-discuss,那么以后任何人只要在這個項目下提交了 issue 或者在 issue 下面有任何留言,

我的通知中心就會通知我。如果你配置了郵箱,你還可能會因此不斷的收到郵件。
在這里插入圖片描述
如果你不想接受這些通知,那么點擊 Not Watching 即可。

另外這里有一篇文章講 如何正確接收 GitHub 的消息郵件,很不錯的一篇文章,推薦大家看看。

star
star 翻譯過來應該是星星,但是這個翻譯沒任何具體意義,這里解釋為關注或者點贊更合適,當你點擊 star,表示你喜歡這個項目或者通俗點,可以把他理解成朋友圈的點贊吧,表示對這個項目的支持。

不過相比朋友圈的點贊,github 里面會有一個列表,專門收集了你所有 start 過的項目,

點擊 github 個人頭像,可以看到 your star的條目,點擊就可以查看你 star 過的所有項目了。如下圖
在這里插入圖片描述
不過,在你的 star 列表很容易出現這樣的問題。就是你可能 star 成百上千個項目怎么辦。

這時,如果 github 可以提供一個分類功能該多好,就像微博網頁版的收藏,你在收藏的時候可以設置 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上面的數字都是可以點擊的,道理一樣。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249598.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249598.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249598.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

docker 操作 記錄

docker ps #查看當前docker容器 docker exec -it 容器名稱 sh 進入docker容器 docker stop 停止docker容器轉載于:https://www.cnblogs.com/objects/p/9569299.html

關于群論證明費馬小定理?

這篇博客就是講證費馬的,沒什么意思。 既然是要用群論證明費馬小定理,那么我們先用數論證明一下。 (以下的 p 為一個質數) 首先我們考慮 一個前置定理: 第一個證明 若 $(c,p) 1$ (即 c 與 p 的 gcd 為 1),且 $ac ≡ bc (mod\ p)$ …

spring 源碼-context

1 spring-context 模塊概要 該模塊主要實現在spring-beans 模塊的擴展,主要對aop支持及el表達式的實現 分析示例 public static void main(String[] args){ClassPathXmlApplicationContext context new ClassPathXmlApplicationContext("spring-aop.xml"…

標示符和關鍵字的總結--希望別再犯錯

(一)Java關鍵字的表 一共50個關鍵字,如下表 其中絕大部分關鍵詞是Java語法發布之初就約定好的,少部分關鍵詞是隨Java語言發展后加入的。 strictfp JDK1.2 加入 assert JDK1.4 加入 enum JDK5.0 加入 還有少數單詞,目前…

歷屆試題 打印十字圖

問題描述 小明為某機構設計了一個十字型的徽標(并非紅十字會啊),如下所示: ..$$$$$$$$$$$$$....$...........$..$$$.$$$$$$$$$.$$$$...$.......$...$$.$$$.$$$$$.$$$.$$.$...$...$...$.$$.$.$$$.$.$$$.$.$$.$.$...$...$.$.$$.$.$.…

Spring BeanDefinition

BeanDefinition,顧名思義,是一個對象(Bean)在Spring中描述,其核心類圖: 從類圖我們詳細了解BeanDefinition。 BeanDefinition接口繼承自BeanMetadataElement和AttributeAccessor兩個接口。 BeanMetadataElement:bean…

樂尚網絡:小程序商城零售行業10大新賦能

微信小程序上線以來,各行各業積極入場小程序,著手打造屬于自己的小程序生態。小程序形態多樣,適合你的小程序才是最好的;在眾多形態中,小程序商城可以說是零售行業的主體形態了,因為通過平臺直接實現交易是…

深度學習中的正則化

正則化方法有如下幾種: 一、參數范數懲罰 其中L2、L1參數正則化介紹與關系如下 1、L2 參數正則化 直觀解釋如下: 2、L1 參數正則化 二、獲取更多數據(擴樣本) 避免過擬合的基本方法之一是從數據源獲得更多數據,當訓練數…

spring uml

spring執行流程: 1: 加載spring.xml文件 2: 創建xml文件解析器 3: 獲取命名空間,即在spring.xml文件中的 http://www.springframework.org/schema/context 4: 根據命名空間找到命名空間處理器,在…

「造個輪子」——cicada(輕量級 WEB 框架)

前言 俗話說 「不要重復造輪子」,關于是否有必要不再本次討論范圍。 創建這個項目的主要目的還是提升自己,看看和知名類開源項目的差距以及學習優秀的開源方式。 好了,現在著重來談談 cicada 這個項目的核心功能。 我把他定義為一個快速、輕量…

基于owncloud構建私有云儲存網盤

注意事項:需要ping通外網 需要LAMP架構yum -y install httpd php php-mysql mariadb-server mariadb sqlite php-dom php-mbstring php-gd php-pdo 開啟服務[rootowncloud ~]# setenforce 0setenforce: SELinux is disabled[rootowncloud ~]# systemctl stop firewa…

Spring 源碼分析之AbstractApplicationContext源碼分析

首先我覺得分析ApplicationContext必須從它的實現類開始進行分析,AbstractApplicationContext我覺得是一個不錯的選擇,那我們就從這里開始逐一分析吧,首先我自己手畫了一張圖,作為索引吧,其中藍色的為類,紫…

[USACO15FEB]Superbull (最小生成樹)

題目鏈接 Solution 基本上就是個板子. 因為 \(n\) 很小,只有 \(2000\),所以直接暴力建圖,然后跑最小生成樹就好了. Code #include<bits/stdc.h> #define ll long long using namespace std; const int maxn2008; struct sj{int to,fr; ll w; }a[maxn*maxn]; int fa[maxn]…

Java中九大內置對象

1、Request對象 該對象封裝了用戶提交的信息&#xff0c;通過調用該對象相應的方法可以獲取封裝的信息&#xff0c;即使用該對象可以獲取用戶提交的信息。 當Request對象獲取客戶提交的漢字字符時&#xff0c;會出現亂碼問題&#xff0c;必須進行特殊處理。首先&#xff0c;…

ORACLE導出導入意外終止導致 ORACLE initialization or shutdown in progress 問題解決

由于意外情況導致 ORACLE initialization or shutdown in progress 個人理解為主要是歸檔日志出現問題&#xff0c; 首先cmd 1.sqlplus /nolog 進入sqlplus 2.connect /as sysdba 連接dba 3.shutdown normal 卸載數據庫 4.startup mount;重啟例程 5.alter database open;開…

Spring中資源的加載ResourceLoader

Spring中資源的加載是定義在ResourceLoader接口中的&#xff0c;它跟前面提到的抽象資源的關系如下&#xff1a; ResourceLoader的源碼 public interface ResourceLoader { /** Pseudo URL prefix for loading from the class path: "classpath:" */ String CLAS…

Codeforces Round #540 (Div. 3)(部分題解)

鏈接:http://codeforces.com/contest/1118 來源:Codeforces 文章目錄A. Water BuyingB. Tanya and Candies(前綴和)D1. Coffee and Coursework (Easy version)(貪心)D2. Coffee and Coursework (Hard Version)(二分)A. Water Buying 題意:用最小的花費買到剛好合適的東西.我們可…

集合一些方法陷阱

一&#xff1a;asList 數組轉ArrayList陷阱&#xff1a; asList() 源碼&#xff1a;public static <T> List<T> asList(T... a) { return new ArrayList<T>(a); } private final E[] a; ArrayList(E[] array) { if (arraynull) throw new NullPointerExcept…

java項目中的classpath

在java項目中&#xff0c;你一定碰到過classpath&#xff0c;通常情況下&#xff0c;我們是用它來指定配置/資源文件的路徑。在剛開始學習的時候&#xff0c;自己也糊里糊涂&#xff0c;但是現在&#xff0c;是時候弄清楚它到底是指什么了。 顧名思義&#xff0c;classpath就是…

C++命名空間(namespace)

在c中&#xff0c;名稱&#xff08;name&#xff09;可以是符號常量、變量、函數、結構、枚舉、類和對象等等。工程越大&#xff0c;名稱互相沖突性的可能性越大。另外使用多個廠商的類庫時&#xff0c;也可能導致名稱沖突。為了避免&#xff0c;在大規模程序的設計中&#xff…