我的最順手的git工做流程

前言

入職滿一個月了,目前咱們組是使用gitlab合做開發,在這裏總結了一下git的使用流程。這一套流程是我目前本身在用的,感受還不錯。css

初始化倉庫

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

重頭戲:更新到遠端倉庫

我是將如下代碼保存成git.sh文件,放在項目根目錄下,每次運行sh git.sh便可自動實現如下命令。ide

#!/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分支的最新化。gitlab

若是同步過程當中遇到衝突,再自行解決。fetch

總結

這是我目前最順手的git工做流程,若是有更好的實踐,歡迎你們一塊兒討論。ui

補充場景

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

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

每次上線都要合併master,爲了保證代碼的新鮮度,這個時候能夠用如下命令合併master分支:開發

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

場景二:修改線上BUG

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

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

須要修改的內容在這個分支修改就能夠了。同步

相關文章
相關標籤/搜索