超詳細!Github團隊協作教程(Gitkraken版)
一、前期工作
1. 在 Github 上創建 organization
step1. 登錄Github網站,點擊右上角頭像,選擇 “Settings” :
step2. 選擇 “Organizations” ,點擊右上角 “New organization”
2. 邀請隊友加入 organization 並創建 team
step1. 進入組織,點擊 “People” -> “invite member” 邀請隊友加入:
成功加入后,在 Github 個人主頁的頭像下方能看到自己加入的組織:
step2. 進入組織,點擊 “Teams” -> “new team” 創建團隊,然后將已加入組織的隊友添加進去:
3. 建立團隊項目倉庫,在設置中將 team 的權限設置為 read
step1. 進入組織,點擊 “Repositories” -> “New” 新建團隊項目倉庫:
step2. 點擊進入剛創建的倉庫,選擇 “Settings” -> “Collaborators & teams”,選擇剛建的 team,將權限設置為 read:
4. 創建開發分支,讓隊友 fork 到個人倉庫
step1. 在輸入框 “Find or create a branch...” 處鍵入dev,創建開發分支。
step2. fork 到個人倉庫
成功后在個人倉庫中能看到如下 fork 信息:
二、正式使用流程(Gitkraken)
1. clone 項目到本地
點擊菜單欄 “File” -> “Clone Repo”, 選擇本地路徑、輸入自己的遠程倉庫 URL (如:https://github.com/thousfeet/Test
),clone 完成后點擊 “Open Now” 。此時左側的 “REMOTE” 下方的 “origin” 會顯示你的遠程倉庫信息。
操作動圖:
2. 添加 REMOTE 關聯到團隊遠程倉庫
點擊 “REMOTE” 右側 “+” 號,添加團隊項目倉庫。此時 “REMOTE” 下會多出團隊遠程倉庫信息。
操作動圖:
3. 切換到 dev 分支
到這步,在本地倉庫(左上方 LOCAL )仍只能看到 master 分支。因此在 “origin” 下的 “dev” 處點擊右鍵 -> “check out origin/dev”,將遠程的 dev 分支同步下來。
操作動圖:
完成這一步之后終於可以愉快地打開本地倉庫項目開始寫代碼辣。
4. 提交commit到自己的遠程倉庫
首先明確:
我們把文件往Git版本庫里添加的時候,是分兩步執行的:
第一步是用git add把文件添加進去,實際上就是把文件修改添加到暫存區(stage);
第二步是用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。
(摘自廖雪峰 Git 教程)
當你修改本地倉庫的文件時,Gitkraken 會自動檢測到變更,並在右上角顯示 “xx file changes on dev” 。點擊 “Stage all changes”,將文件修改添加到暫存區,然后在最右下方的 “Commit message” 中寫下 commit 信息,提交到自己的遠程倉庫。
操作動圖:
5. 和團隊遠程保存同步
當你在本地修改了項目的同時,其他隊友或許已在此期間給團隊的倉庫提交了新的代碼。因此在完成了一系列 commit 將要 push 到遠程之前,先要同步到與團隊一致的版本,避免在 pull request 時產生沖突。
為此我們要做兩件事:更新遠程倉庫的代碼到本地倉庫(fetch),然后將內容合並到當前分支(merge)。(在合並的時候可能會出現沖突,沖突的解決方式將會在后續說明。)
在Gitkraken的操作是:在 “REMOTE” 中的團隊遠程倉庫上單擊右鍵 -> Fetch xxx,然后在團隊遠程倉庫的 dev 分支上單擊右鍵 -> Merge xxx/dev to dev 。
此時可以看到中間的樹狀分支圖上出現了 merge 信息。
操作動圖:
6. push 到自己的遠程倉庫 & 請求 pull request 到團隊遠程
點擊最上方的 push 按鈕將之前的一系列 commit 信息推到自己的遠程倉庫,然后在團隊遠程倉庫的 dev 上右鍵 -> “Start a pull request to xxx/dev from origin/dev”,輸入 pull request 信息(如果只有一條 commit,則會自動填充上 commit 信息),然后點擊提交。此時可在右上角的彈窗單擊 “View on github”,在瀏覽器中查看此次 pull request 。
操作動圖:
使用 Gitkraken 進行其他 Git 操作:教程入口
包括內容:
- 查看某次 commit 的文件改動
- 修改 commit 信息
- 合並多次 commit 信息
- 回到舊版本 commit 記錄並 push 到遠程倉庫
- 解決 merge 到本地時的沖突
文末致敬西瓜學長的 Github 團隊協作命令行教程 ~
(補充了西瓜學長沒有提到的 Organization 建立方式等)