打RPG的時候,隊友的佔位與分配是很重要的! 後排玩家是要對準BOSS的弱點來個會心一擊,還是一個大招砸在前排戰士的頭上,最依賴的就是合理的分配負責區域。寫code也一樣,減少摩擦、劃分區域、互相幫助,才是好的團隊合作。
通常團隊會開一個團隊成員都能專案(Repository),會開一個遠端的倉庫來存放code。無論公開私人、Github還是Gitlab,皆可。這裡介紹Github為主。
如上圖,按步驟點一點就能夠開一個新的專案了,建立好後會獲得一個該專案的URL。打開你的本地端程式。
git remote add <遠端名稱> <URL>
連結本地端與遠端倉庫git push <遠端名稱> <分支名稱>
把本地端的code推上遠端如上圖,將本地端的master,推上了遠端的origin/master。其他人如何獲取遠端code呢?在某一個資料夾底下輸入:
git clone <URL>
把遠端的code、commit 下載到當前資料夾 (給沒有code的人)git pull <遠端名稱>
把遠端最新版的code更新到本地端 (給已有code的人)其實git pull
是git fetch
與git merge
的合體,關於多人協作,我們在明天詳細講講,先提到一下。
git fetch
獲得遠端資訊git merge
合併兩個分支分支(branch)是git多人協作的一個很重要的工具,在遠端倉庫中,多人一起push會導致程式衝突。為了避免每次push會有大量衝突,建議開發模式是多分支開發,每一個開發者會有自己的一個分支,當開法feature完成後合併到主幹分支。
git branch <分支名>
建立新的分支git branch -v
查看分支git checkout <分支名>
切換到分支 (HEAD的移動)你可以把分支想像成有人複製了一份code,可以讓你隨意修改。修改滿意後或是審核通過後再讓你把修改內容合併回原始的主要程式內(master)。如下圖:
我們有了兩個branch (master、feature/person_1),他們各自對Apple.txt有了commit,為了方便看,可以使用Visual Studio Code的Git History來查看,如下圖:
綠色的是本地端、紅色的是遠端(origin master)。可以看到遠端的倉庫版本落後於本地端的版本,我們可以再加上一個README.md
(顯示在專案進入點的文件)後上傳端,流程與之前大同小異。
# 在master新增了一個README.md並修改後
git add .
git commit -m "添加README"
git push origin master
這樣就能成功推上遠端了,讓遠端與本地端master同步。
其實checkout就是HEAD的移動,所以除了checkout不同分支外,你也可以checkout到同條支線其他commit點上,如此便能看到不同commit時間點的code。
git checkout <哈希值(前七碼)>
HEAD移動到其他commit上
git checkout <branch-name>
HEAD移動回最新的commit上
git push origin <branch-name>
把分支推上遠端倉庫