# 4.3\. 組織和團隊
GitHub 在早期沒有專門為組織提供賬號,很多企業用戶或大型開源組織只好使用普通用戶賬號作為組織的共享賬號來使用。后來,GitHub推出了組織這一新的賬號管理模式,滿足大型開發團隊的需要。
* 組織賬號是不能用來登錄的,它包含一個Owner(擁有者)用戶組,只有屬于這個組的用戶在登錄后,才能切換為組織的管理者。
* 可以創建任意多的團隊(Team)即角色,對屬于組織的用戶進行管理。Owner Team就是組織中權限最高的角色。
* 組織和用戶一樣可以創建項目,但是組織沒有SSH公鑰配置,也不能以組織的身份操作版本庫。
* 組織沒有工作描述之類的個人賬號才擁有的屬性。
## 4.3.1\. 創建新組織
組織是非登錄賬號,不能像創建普通登錄賬號那樣直接創建,而是需要以GitHub用戶身份登錄,然后再創建自己的組織,創建者成為組織天然的管理者。
圖4-26就是用戶gotgithub登錄后,通過點擊右上角的賬號設置圖標進入賬號設置界面,然后再點擊菜單中的“Organizations”進入組織管理界面。
[](https://box.kancloud.cn/2015-07-09_559de41c2eb2e.png)
圖4-26:賬號設置中的組織管理
在初始的組織管理界面中組織列表為空,即尚不屬于任何組織。可以選擇把當前用戶gotgithub的賬號轉換為一個組織賬號(前提是gotgithub的賬號不屬于任何組織)。提供這一賬號遷移功能是因為在GitHub提供組織這一新功能之前,很多公司或團隊以個人身份創建GitHub賬號,但是以組織的形象出現,對于這類賬號,GitHub提供了由個人賬號向組織賬號遷移的途徑。
在這里我們不進行這一遷移,而是以用戶gotgithub的身份創建一個新的組織。點擊“Create New Organization”按鈕,顯示創建組織表單,如圖4-27所示。
[](https://box.kancloud.cn/2015-07-09_559de41e05651.png)
圖4-27:創建新組織
這里填寫組織名為 GotGitOrg。創建組織還要選擇一個付費方案,默認會選擇免費的沒有私有版本庫的開源方案。
接下來為新建組織設定擁有者(Owner),如圖4-28所示。當前用戶,即正在創建組織的用戶,理所當然成為組織擁有者之一。還可以為組織指派更多的組織擁有者,多個組織擁有者的權限并無差別,都可以管理組織,甚至可以將其他用戶從擁有者團隊中刪除。
[](https://box.kancloud.cn/2015-07-09_559de42270a77.png)
圖4-28:指派組織擁有者
完成創建后,訪問用戶賬號設置界面中的組織面板,如圖4-29所示,列出當前用戶所屬的組織(GotGitOrg)。可以重新對組織進行設定,或者退出組織。注意因為當前用戶已經屬于一個以上的組織,所以右側將當前用戶轉換為組織的按鈕被置灰。
[](https://box.kancloud.cn/2015-07-09_559de426dfc70.png)
圖4-29:加入組織后的組織管理界面
## 4.3.2\. 組織管理
當用戶gotgithub成為新建組織GotGitOrg的一員后,就可以在用戶和組織的界面之間切換。點擊頁面左上角“github”文字圖標進入儀表板界面。
[](https://box.kancloud.cn/2015-07-09_559de427d660a.png)
圖4-30:用戶儀表板界面
儀表板頁面左上角“github”文字圖標的下面就是用戶上下文列表框。點擊用戶上下文下拉列表,如圖4-31所示。
[](https://box.kancloud.cn/2015-07-09_559de42d51aa1.png)
圖4-31:用戶上下文切換列表
在用戶上下文列表中選擇組織GotGitOrg作為用戶上下文后,則儀表板中顯示的菜單和個人賬號儀表板菜單略有不同,如圖4-32所示。
[](https://box.kancloud.cn/2015-07-09_559de42ee27ea.png)
圖4-32:組織GotGitOrg的儀表板界面
組織的儀表板界面與用戶儀表板的不同之處在于增加了團隊管理(Team)和組織管理(Organization Settings)。選擇菜單中的“Team”進入團隊管理界面,可以在組織中添加任意數量的團隊。添加新團隊的界面如圖4-33所示。
[](https://box.kancloud.cn/2015-07-09_559de4304c53a.png)
圖4-33:添加新團隊iOS-Team
創建一個團隊需要提供四個選項(如圖4-33):
1. 團隊名稱。如:iOS-Team。
2. 團隊成員。如:supergirl和omnidroid兩個用戶作為團隊成員。
3. 團隊權限。有三個選擇:只讀(Pull Only)、讀寫(Push & Pull)、讀寫并管理(Push, Pull & Administrative)。
4. 授權版本庫。可以添加一個或多個版本庫,只有對授權的版本庫才擁有指定權限。
其中團隊授權中的只讀授權對于免費組織賬號創建的開源項目沒有實際意義,因為開源項目人人可讀,只有對于付費的組織賬號創建的私密版本庫才體現出價值。關于付費賬號和私密版本庫將在后面的章節介紹。接下來介紹如何在組織賬號下創建版本庫。
## 4.3.3\. 版本庫管理
組織擁有獨立的項目托管空間,點擊頁面左上角的“github”文字圖標進入組織賬號的儀表板界面。剛剛建立的組織賬號的版本庫尚未創建,點擊圖4-32所示的“New Repository”按鈕,創建版本庫(即項目)。
新建版本庫的界面如圖4-34所示。
[](https://box.kancloud.cn/2015-07-09_559de430f3111.png)
圖4-34:新建項目界面
在組織的托管空間創建項目與在普通用戶的空間下創建稍有不同,增加了團隊設置下拉框。圖4-34顯示在創建名為MyiPad項目時,只能為項目指派一個已定義團隊,要想為項目指派更多團隊可以在項目創建完畢通過項目管理界面添加。
下面來看一看如何為已建立項目指派更多的團隊。進入項目管理頁面,點擊左側菜單項“Team”顯示項目的團隊管理界面,可以通過該界面,為項目添加和移除團隊,如圖4-35所示。
[](https://box.kancloud.cn/2015-07-09_559de43362bbe.png)
圖4-35:項目的團隊管理
屬于團隊的項目(版本庫)可以轉移給個人,反之亦然。圖4-36展示了如何通過項目管理界面在用戶和組織之間轉移項目(版本庫)。
[](https://box.kancloud.cn/2015-07-09_559de434a204d.png)
圖4-36:項目轉移
## 4.3.4\. 個人還是組織
若使用“Fork + Pull”的工作模式,通過個人賬號還是組織賬號托管版本庫,幾乎沒有什么差別。如果一定要找出點不同,那就是在向托管版本庫提交Pull Request時,郵件通知的用戶范圍有所不同。
* 對于個人賬號,對其托管空間內的版本庫發出Pull Request,通知郵件會發送給該個人賬號及該版本庫設置的所有協作者(如果有的話)的郵箱。
* 對于組織,對其托管空間內的版本庫發出Pull Request,不會向組織的郵箱發送Pull Request,也不會向組織的所有者(Owner團隊)發送通知郵件,而是向在版本庫中擁有Push權限的團隊(非Owner團隊)成員發送通知郵件。
因此,如果在組織的托管空間創建版本庫,一定要要為版本庫指派一個擁有Push權限的團隊,以免以“Fork + Pull”模式工作時,Pull Request沒有人響應。
若是以共享版本庫方式(即集中式協同模式)工作的話,使用組織來托管版本庫會比使用個人賬號托管有效率得多。
* 以個人賬號托管,需要逐一為版本庫設置協作者(Collaborators),如果版本庫較多且授權相同,配置過程繁瑣且易出錯。
* 以組織方式托管,將用戶分組,劃分為一個一個的團隊(Team),以團隊為單位授權則方便得多。
* 如果是以付費賬號創建的私密版本庫,使用組織方式管理,會有包括只讀、讀寫等更豐富的授權類型,更符合項目管理的實際。
- 前言
- 1. 探索GitHub
- 1.1. 什么是GitHub
- 1.2. GitHub亮點
- 1.3. 探索GitHub
- 2. 加入GitHub
- 2.1. 創建GitHub賬號
- 2.2. 瀏覽托管項目
- 2.3. 社交網絡
- 3. 項目托管
- 3.1. 創建新項目
- 3.2. 操作版本庫
- 3.3. 公鑰認證管理
- 3.4. 版本庫鉤子擴展
- 3.5. 建立主頁
- 4. 工作協同
- 4.1. Fork + Pull模式
- 4.2. 共享版本庫
- 4.3. 組織和團隊
- 4.4. 代碼評注
- 4.5. 缺陷跟蹤
- 4.6. 維基
- 5. 付費服務
- 5.1. GitHub收費方案
- 5.2. GitHub企業版
- 6. GitHub副產品
- 6.1. GitHub:Gist
- 6.2. 其他版本控制工具支持
- 6.2.1. 用SVN操作GitHub
- 6.2.2. 用Hg操作GitHub
- 6.3. 客戶端工具
- 6.4. 其他
- 7. 附錄:輕量級標記語言
- 貢獻者列表