Unity 如何導入 GitHub 版本控制並進行多人協作?

發表日期:
2023.03.19
/
分類:
無論是單人還是多人協作,版本控制系統是實作過程中不可或缺的工具。當程式寫壞了,可以快速回復到上一個版本;當硬碟掛了,可以從雲端拉備份回來繼續

無論是單人還是多人協作,版本控制系統是實作過程中不可或缺的工具。當程式寫壞了,可以快速回復到上一個版本;當硬碟掛了,可以從雲端拉備份回來繼續作業。多人協作時,這個系統能夠幫你合併所有人對專案的變更,無需每次變更內容後都要製成壓縮檔並雲端傳輸。

本文將介紹的 GitHub 是目前最多人使用的版本控制系統「Git」配合的雲端儲存庫平台,能將你的 Unity 專案同步至 GitHub 雲端,並利用 Git 的機制實現多人協作的作品開發。於 Microsoft 收購後,免費版帳戶已無儲存空間上限(單檔限制 100MB 以下,否則將限制上傳或消耗 LFS 額度,參考資料:About large files on GitHub)。

註冊 GitHub 帳戶

開啟 GitHub 官網並點擊 Sign up 註冊一個帳號。

安裝 GitHub Desktop

開啟 GitHub Desktop 官網並點擊 Download 下載並安裝。

開啟安裝檔後,點擊 Sign in to GitHub.com,登入你的 GitHub 帳號。

點擊 Finish 完成安裝與設定。

建立專案儲存庫

儲存庫 (Repository) 是版本控制系統中用於存放原始碼的容器,一個 Unity 專案可以對應一個儲存庫,但一個儲存庫能對應多個專案。在本節中,我們使用最簡單且最常用的作法,將一個 Unity 專案對應至一個儲存庫。

開啟 GitHub Desktop,進入頂部選單的 File / Add local repository。

點擊 Choose。

選擇你的 Unity 專案資料夾,並點擊 選擇資料夾。

這時 GitHub Desktop 會提示你的 Unity 專案沒有使用儲存庫,點擊 create a repository 新建一個。

於 Name 輸入儲存庫名稱,建議使用英文小寫,並以連字號 - 取代空格或其他符號。Git ignore 須設定為 Unity,以防止無用的專案資料被上傳至雲端(例如:暫存檔案)。最後點擊 Create repository。

如果有跳出 Git LFS 提示,請點擊 Initialize Git LFS。

這時如果又再次跳出要你建立儲存庫的提示,請點擊 Cancel,這是目前 GitHub Desktop 的 Bug。

發布至雲端

於上一節中,我們已完成 Unity 專案的儲存庫建置,下一步要來將儲存庫上傳至雲端。

點擊 Publish repository。

再次輸入儲存庫名稱,並勾選 Keep this code private 來將儲存庫設定為私人,以免原始碼被竊取。

最後點擊 Publish repository。

設定多人協作

目前我們的 Unity 專案已連結至儲存庫,也已上傳至雲端。這一節中,我們將要為儲存庫分配權限,讓你的工作夥伴也能編輯這個專案。

點擊 Repository / View on GitHub 開啟儲存庫的 GitHub 網頁。

進入儲存庫的 Settings / Collaborators,並點擊 Add people。

輸入工作夥伴的 GitHub 帳號名稱或電子郵件,最後點擊按鈕送出協作邀請。

剛送出的協作邀請函為 Pading Invite 狀態,這時請你的工作夥伴登入 GitHub 或查看 Email 是否有收到協作邀請函。

工作夥伴登入 GitHub 後,點擊右上角的鈴鐺圖示,可以看到有一個協作邀請訊息,請開啟它。

點擊 Accept invitation 同意邀請。

最後,工作夥伴將取得儲存庫的存取權限。

下載專案儲存庫

在取得儲存庫的權限後,下一步將要來把儲存庫 — Unity 專案下載至本機,請工作夥伴先安裝 GitHub Desktop 後,在儲存庫網頁中點擊 Code / Open with GitHub Desktop。

瀏覽器將試圖開啟 GitHub Desktop,請點擊 開啟。

GitHub Desktop 將自動填入儲存庫資料,請點擊 Clone 開始下載。Clone 意思是將儲存庫複製至本機中,可以理解成把儲存庫下載至電腦。

開啟 Unity 專案

等待儲存庫下載完成後,請工作夥伴開啟 Unity Hub,點擊 專案 / 開啟。

選擇剛才下載的儲存庫資料夾,再點擊 開啟,這時你的 Unity 專案已可被工作夥伴存取 。

推送更新至雲端

於上節中,我們已完成工作夥伴的權限分配,也成功存取專案,現在你的 Unity 專案已能夠進行多人協作。

Git 的儲存庫基本特性有:

  • Fetch:擷取更新

  • Pull:拉取更新,將合併更新至現有專案

  • Push:推送更新,將現有專案推送至雲端

  • Commit:認可更新,將專案的變更記錄起來

當你或工作夥伴對專案進行修改後,GitHub Desktop 將會偵測到變更。如果已完成一小階段的開發,建議進行一次 Commit,讓 Git 系統幫你儲存當前的專案狀態。

請先勾選要 Commit 的檔案,並輸入 Commit 的說明,最後點擊 Commit to main。

當完成階段性的開發,或需要讓工作夥伴接手,請點擊 Push origin 將更新推送至雲端。

正規流程是:先 Commit,再 Push。如果沒有任何 Commit 紀錄,便無法 Push。

拉取更新至本機

當工作夥伴推送更新後,你將能夠拉取他的更新,再合併至現有專案接手開發。

點擊 Fetch origin 擷取更新。

如果現在你的專案也有進行變更,那建議在這裡先進行一次 Commit,以保存現有狀態,否則有可能會遺失變更。

點擊 Pull origin 拉取更新。

最後將會拉取更新,並合併至本機專案。順利完成合併後,就可開啟專案繼續開發

總結

本文我們說明了從 GitHub 服務的註冊、權限至本機儲存庫的設置與更新,讓你和工作夥伴能夠共同開發同一個 Unity 專案,並使用 GitHub Desktop 進行更新的推送與拉取等基本操作。

在使用版本控制系統時,你與工作夥伴 請不要同時修改同一個內容 (例如:場景、材質、腳本),在拉取與合併更新時將會出現衝突。衝突的問題解決依情況有簡單也有複雜,在本文中我們尚未說明其解決方法,所以請盡量避免此類狀況發生。

參考資料

comments powered by Disqus