Gitlab多人工作流程

基礎(chǔ)·Gitlab Flow 工作流程

很多公司都使用 Gitlab 來進(jìn)行團(tuán)隊的代碼管理。Gitlab 是一個基于 git 實現(xiàn)的在線代碼倉庫軟件,一般用于在企業(yè)、學(xué)校等內(nèi)部網(wǎng)絡(luò)搭建一個類似 Github 的網(wǎng)站。在這上面進(jìn)行多人協(xié)作開發(fā)就使用 Gitlab flow 工作流程,與 Github flow 有許多相似的地方。

一個典型的開發(fā)過程是這樣的(假設(shè)項目名稱為 a,程序員的名字叫 xyz):

「第 1 步」

在 Gitlab 上找到項目主倉庫,假設(shè)為 fe / a,將其 fork 到自己的空間,變成 xyz / a,然后 clone 到本地進(jìn)行開發(fā),命令為:

git clone git@git.yourcompanyname.com:xyz/a.git

( fork 到自己空間的倉庫可以隨意修改,除非向項目主倉庫提交 MR 并合并,不然不會影響主倉庫)

「第 2 步」

新建分支,在該分支上進(jìn)行新功能開發(fā),命令為:

git branch feat-xxx
git checkout feat-xxx

「第 3 步」

開發(fā)自測結(jié)束后,將修改提交至本地倉庫, 命令為:

git add .
git commit -m “feat: 增加xxx新功能”

( Commit Message 的規(guī)范可以是:新增功能以「feat:」開頭,修復(fù) bug 以「fix:」開頭,重構(gòu)以「refactor:」開頭)

「第 4 步」

檢查上游版本是否有改動,命令為:

git remote add upstream git@git.yourcompanyname.com:fe/a.git
git pull upstream master --rebase

(add upstream 是添加上游地址,即主倉庫地址,僅第一次需要;使用 --rebase 便不會產(chǎn)生 merge commit,使 commit 干凈清爽)

——若存在代碼沖突,則進(jìn)入「第 a 步」,否則跳過該步。

「第 a 步」

手動解決沖突后,執(zhí)行命令:

git add .
git rebase --continue

「第 5 步」

檢查 git log 無誤,將分支推送至 origin,命令為:

git push origin feat-xxx

完成后在 Gitlab 上向主倉庫發(fā)起 Merge Request(MR),請同事進(jìn)行 code review。

——若同事對 MR 提出修改意見,則進(jìn)入「第 b 步」,否則跳過該步。

「第 b 步」

按照修改意見修改后,執(zhí)行命令:

git add .
git commit --amend --no-edit
git pull upstream master --rebase
git push origin feat-xxx -f

(使用 --amend 將這次 commit 與上次 commit 合并,只留下一條 commit 記錄。如果要修改上一條的 message,則使用 git commit --amend -m “xxx”; push 的時候使用 -f 是因為修改了分支,需要強(qiáng)制合并)

「第 6 步」

MR 被通過后,在 Gitlab 上點(diǎn)擊 merge,代碼會被合并到主倉庫。此時可刪除本地分支了,命令為:

git checkout master
git branch -D feat-xxx
git push origin :feat-xxx

「第 7 步」

更新本地代碼和 origin 代碼為最新,命令為:

git pull upstream master --rebase
git push origin master

再次開發(fā)則從「第 2 步」開始即可。

原文

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容