標籤:

github 之 那些暈頭轉向的名詞

1. 什麼是github

簡單來說,github是用來幫你管理代碼的,使用github可以輕鬆的查詢各個代碼版本,尤其,針對一個團隊,可以進行許可權控制。

github針對開源免費使用,因此,很多開源優秀的項目都在github上託管,方便更新迭代,例如node.js, bootstrap,等等。

2. github名詞說明

a. 倉庫(repository)

倉庫用於保存項目代碼;

註冊一個github賬號之後,你可以擁有多個代碼倉庫,每個倉庫可以用來保存一個獨立的項目;可以創建獲得(New repository),當然,也可以從其他倉庫導入(Import repository);這些倉庫都歸該github賬戶所私有,其他用戶不能push代碼到該倉庫。

倉庫也即我們所說的「遠程倉庫」,在開發的時候,一般會把代碼從遠程倉庫clone一份到我們自己的開發機;我們增刪改的時候,都是修改的本地的,最後再提交到遠程倉庫,與遠程倉庫的代碼合併。(本文所提到的倉庫都是指遠程倉庫)

b. 組織(organization)

每個賬號可以創建多個組織,組織是一個比倉庫大很多的概念,也更為複雜,這個組織的所有者,便是創建組織的人。一個組織可以擁有多個成員(member,這些member分別是多個不同的github賬戶),以及多個代碼倉庫,所以這個組織就需要對這些倉庫跟成員進行合理管理。

組織可以擁有多個倉庫(repository),用於保存多個獨立的項目;

組織,是以團隊(team)為單位來管理成員的,每個成員都被加入到一個團隊中間;

這裡,倉庫(repository)跟團隊(team)之間是多對多的關係,即,一個團隊可以管理多個倉庫,一個倉庫也可以被多個團隊管理;

那麼,組織創建者,可以控制哪個團隊來管理哪個項目,因此,組織的倉庫不在被創建者私有,而是被團隊所共有

而且,每個團隊對每個項目的許可權也由創建者來管理,許可權共有3種:Admin, Read, Write;當一個成員對一個項目的許可權是Admin或者Write的時候,該成員可以push代碼到該倉庫。

3. 舉例說明--創建倉庫

github創建倉庫

4. 舉例說明--創建組織

github創建組織(organization)

5. 舉例說明--fork & pull requests

前面說,一個倉庫,只能該倉庫的所有者;或者是一個倉庫屬於某個組織,組織中擁有許可權的賬戶;才可以向倉庫中提交代碼。那麼,針對一個大型的開源項目,我們既不是創建者,又沒有任何許可權,那麼如何將自己的代碼提交到這個開源項目的倉庫呢?

解決方案是:fork開源項目的代碼,到我們自己的賬戶;從我們自己的賬戶中clone代碼到本地;添加代碼,提交到我們自己的github倉庫;發起pull requests,等待merge。

github fork & pull requests

6. 分支(branch)

每個代碼庫默認有一個分支 master;在開發的時候,可以拉取新的分支develop來開發(當然分支名稱可以隨意取);每次提交,commit都是到develop分支,一旦確保代碼無誤,可以將分支的代碼合併到主分支。

7.

上圖紅框中所標識的,前面表示「用戶名」或者「組織名」,後者表示「倉庫名」,從這裡也可以看出來,該倉庫是屬於用戶私有,還是屬於組織。


推薦閱讀:

如何寫好Github中的readme?
Github上的開源項目的價值可以用錢衡量嗎?
GitHub 在國內無法訪問之後,如何自救?
Github使用系列(三):Github分支操作
掘金 Badge 上線:GitHub 上隨處可見的「小盾牌」圖標,掘金也做了一個……

TAG:GitHub |