個人最順手的git工作流程

劉寧Leo發表於2018-06-14

前言

入職滿一個月了,目前我們組是使用gitlab合作開發,在這裡總結了一下git的使用流程。這一套流程是我目前自己在用的,感覺還不錯。

初始化倉庫

git clone + URL //建立本地倉庫

git checkout origin/dev -b dev //拉取遠端dev分支到本地dev分支

git checkout -b ningliu //新建自己的本地分支ningliu(ningliu是我的名字)

git push --set-upstream origin ningliu //把自己的本地分支同步到遠端分支

git checkout ningliu //確保在自己的本地分支操作

每次修改完程式碼

git add . //把自己的修改推送到本地index區

git commit -m "這裡寫提交的資訊哦" //把自己的修改推送到head區,並附加提交資訊

備註:不理解index區和head區等基本概念的推薦閱讀 git – 簡易指南。 這篇文章足夠了解基本概念了。

重頭戲:更新到遠端倉庫

我是將以下程式碼儲存成git.sh檔案,放在專案根目錄下,每次執行sh git.sh即可自動實現以下命令。

#!/bin/sh

if [ $? -ne 0 ]; then
exit 1
fi

MAIN="dev"
# 將變數 ME 的值改為自己的分支名
ME="branch_name"

git push # 把本地自己分支的修改推送到遠端自己分支
git pull # 拉取遠端自己分支的更新
git merge origin/${MAIN} # 把遠端dev分支合併到本地自己分支
git push # 把本地自己分支的修改推送到遠端自己分支

git checkout ${MAIN} # 切換到本地dev分支
git pull # 拉取遠端dev分支的更新
git merge ${ME} # 把本地自己分支合併到本地dev分支
git push # 把本地dev分支的修改推送到遠端dev分支

git checkout ${ME} # 切換回自己的本地分支

每行命令我已經加上了註釋。總之這幾行命令實現了本地和遠端自己的分支、本地和遠端的dev分支的同步。前四行是實現自己分支的最新化,後四行是實現dev分支的最新化。

如果同步過程中遇到衝突,再自行解決。

總結

這是我目前最順手的git工作流程,如果有更好的實踐,歡迎大家一起討論。

補充場景

根據工作中遇到的場景越來越多,特此做一下補充:

場景一:上線前需要合併master分支

每次上線都要合併master,為了保證程式碼的新鮮度,這個時候可以用以下命令合併master分支:

git fetch #下載一下遠端程式碼
git merge orgin/master #把master分支合併到當前分支

場景二:修改線上BUG

先在gitlab上基於master新建一個新的修改bug分支,例如master_fix
然後使用以下命令:

git fetch origin master:master_fix #拉取遠端分支到本地

需要修改的內容在這個分支修改就可以了。

相關文章