GitHub 在早期沒有專門為組織提供賬号,很多企業使用者或大型開源組織隻好使用普通使用者賬号作為組織的共享賬号來使用。後來,GitHub推出了組織這一新的賬号管理模式,滿足大型開發團隊的需要。
組織賬号是不能用來登入的,它包含一個Owner(擁有者)使用者組,隻有屬于這個組的使用者在登入後,才能切換為組織的管理者。
可以建立任意多的團隊(Team)即角色,對屬于組織的使用者進行管理。Owner Team就是組織中權限最高的角色。
組織和使用者一樣可以建立項目,但是組織沒有SSH公鑰配置,也不能以組織的身份操作版本庫。
組織沒有工作描述之類的個人賬号才擁有的屬性。
組織是非登入賬号,不能像建立普通登入賬号那樣直接建立,而是需要以GitHub使用者身份登入,然後再建立自己的組織,建立者成為組織天然的管理者。
圖4-26就是使用者gotgithub登入後,通過點選右上角的賬号設定圖示進入賬号設定界面,然後再點選菜單中的“Organizations”進入組織管理界面。

圖4-26:賬号設定中的組織管理
在初始的組織管理界面中組織清單為空,即尚不屬于任何組織。可以選擇把目前使用者gotgithub的賬号轉換為一個組織賬号(前提是gotgithub的賬号不屬于任何組織)。提供這一賬号遷移功能是因為在GitHub提供組織這一新功能之前,很多公司或團隊以個人身份建立GitHub賬号,但是以組織的形象出現,對于這類賬号,GitHub提供了由個人賬号向組織賬号遷移的途徑。
在這裡我們不進行這一遷移,而是以使用者gotgithub的身份建立一個新的組織。點選“Create New Organization”按鈕,顯示建立組織表單,如圖4-27所示。
圖4-27:建立新組織
這裡填寫組織名為 GotGitOrg。建立組織還要選擇一個付費方案,預設會選擇免費的沒有私有版本庫的開源方案。
接下來為建立組織設定擁有者(Owner),如圖4-28所示。目前使用者,即正在建立組織的使用者,理所當然成為組織擁有者之一。還可以為組織指派更多的組織擁有者,多個組織擁有者的權限并無差别,都可以管理組織,甚至可以将其他使用者從擁有者團隊中删除。
圖4-28:指派組織擁有者
完成建立後,通路使用者賬号設定界面中的組織面闆,如圖4-29所示,列出目前使用者所屬的組織(GotGitOrg)。可以重新對組織進行設定,或者退出組織。注意因為目前使用者已經屬于一個以上的組織,是以右側将目前使用者轉換為組織的按鈕被置灰。
圖4-29:加入組織後的組織管理界面
當使用者gotgithub成為建立組織GotGitOrg的一員後,就可以在使用者群組織的界面之間切換。點選頁面左上角“github”文字圖示進入儀表闆界面。
圖4-30:使用者儀表闆界面
儀表闆頁面左上角“github”文字圖示的下面就是使用者上下文清單框。點選使用者上下文下拉清單,如圖4-31所示。
圖4-31:使用者上下文切換清單
在使用者上下文清單中選擇組織GotGitOrg作為使用者上下文後,則儀表闆中顯示的菜單和個人賬号儀表闆菜單略有不同,如圖4-32所示。
圖4-32:組織GotGitOrg的儀表闆界面
組織的儀表闆界面與使用者儀表闆的不同之處在于增加了團隊管理(Team)群組織管理(Organization Settings)。選擇菜單中的“Team”進入團隊管理界面,可以在組織中添加任意數量的團隊。添加新團隊的界面如圖4-33所示。
圖4-33:添加新團隊iOS-Team
建立一個團隊需要提供四個選項(如圖4-33):
團隊名稱。如:iOS-Team。
團隊成員。如:supergirl和omnidroid兩個使用者作為團隊成員。
團隊權限。有三個選擇:隻讀(Pull Only)、讀寫(Push & Pull)、讀寫并管理(Push, Pull & Administrative)。
授權版本庫。可以添加一個或多個版本庫,隻有對授權的版本庫才擁有指定權限。
其中團隊授權中的隻讀授權對于免費組織賬号建立的開源項目沒有實際意義,因為開源項目人人可讀,隻有對于付費的組織賬号建立的私密版本庫才展現出價值。關于付費賬号和私密版本庫将在後面的章節介紹。接下來介紹如何在組織賬号下建立版本庫。
組織擁有獨立的項目托管空間,點選頁面左上角的“github”文字圖示進入組織賬号的儀表闆界面。剛剛建立的組織賬号的版本庫尚未建立,點選圖4-32所示的“New Repository”按鈕,建立版本庫(即項目)。
建立版本庫的界面如圖4-34所示。
圖4-34:建立項目界面
在組織的托管空間建立項目與在普通使用者的空間下建立稍有不同,增加了團隊設定下拉框。圖4-34顯示在建立名為MyiPad項目時,隻能為項目指派一個已定義團隊,要想為項目指派更多團隊可以在項目建立完畢通過項目管理界面添加。
下面來看一看如何為已建立項目指派更多的團隊。進入項目管理頁面,點選左側菜單項“Team”顯示項目的團隊管理界面,可以通過該界面,為項目添加和移除團隊,如圖4-35所示。
圖4-35:項目的團隊管理
屬于團隊的項目(版本庫)可以轉移給個人,反之亦然。圖4-36展示了如何通過項目管理界面在使用者群組織之間轉移項目(版本庫)。
圖4-36:項目轉移
若使用“Fork + Pull”的工作模式,通過個人賬号還是組織賬号托管版本庫,幾乎沒有什麼差别。如果一定要找出點不同,那就是在向托管版本庫送出Pull Request時,郵件通知的使用者範圍有所不同。
對于個人賬号,對其托管空間内的版本庫發出Pull Request,通知郵件會發送給該個人賬号及該版本庫設定的所有協作者(如果有的話)的郵箱。
對于組織,對其托管空間内的版本庫發出Pull Request,不會向組織的郵箱發送Pull Request,也不會向組織的所有者(Owner團隊)發送通知郵件,而是向在版本庫中擁有Push權限的團隊(非Owner團隊)成員發送通知郵件。
是以,如果在組織的托管空間建立版本庫,一定要要為版本庫指派一個擁有Push權限的團隊,以免以“Fork + Pull”模式工作時,Pull Request沒有人響應。
若是以共享版本庫方式(即集中式協同模式)工作的話,使用組織來托管版本庫會比使用個人賬号托管有效率得多。
以個人賬号托管,需要逐一為版本庫設定協作者(Collaborators),如果版本庫較多且授權相同,配置過程繁瑣且易出錯。
以組織方式托管,将使用者分組,劃分為一個一個的團隊(Team),以團隊為機關授權則友善得多。
如果是以付費賬号建立的私密版本庫,使用組織方式管理,會有包括隻讀、讀寫等更豐富的授權類型,更符合項目管理的實際。
本文轉自二郎三郎部落格園部落格,原文連結:http://www.cnblogs.com/haore147/p/4219673.html,如需轉載請自行聯系原作者