項(xiàng)目中的Git使用規(guī)范-高效工作

一、背景

  • 背景:由于團(tuán)隊(duì)人員不斷擴(kuò)充,需要讓大家形成統(tǒng)一的認(rèn)知,減少溝通成本,所以建立統(tǒng)一規(guī)范。
  • 文檔大綱
    • Gitflow規(guī)范
    • Git提交規(guī)范
    • Git常用命令

二、文檔內(nèi)容

2.1 Gitflow規(guī)范

分支類型系統(tǒng)

image.png

合并方向

規(guī)范倉庫分支間的合并方向,只允許創(chuàng)建列表中規(guī)定方向的合并請(qǐng)求,列表為空則不會(huì)對(duì)倉庫中的合并請(qǐng)求方向做限制。


image.png

2.2 Git提交規(guī)范

Git 提交信息的格式校驗(yàn):^(Fix|Update|Feature|Docs|Revert|Build|Upgrade|Chor)?: .{1,72} 

規(guī)則說明:
1、Feature: 新功能(feature)
2、Fix: 修補(bǔ)bug
3、Update:更新
4、Perf: 性能優(yōu)化
5、Docs: 文檔(documentation)
6、Chor: 構(gòu)建過程或輔助工具的變動(dòng)
7、Revert: 撤銷,版本回退
8、Build: 打包
9、Upgrade:升級(jí)
示例:

   git commit -m "Featrue: 新增菜單模塊"
   git commit -m "Fix: 修訂了菜單模塊"
   git commit -m "Update: 更新了菜單模塊"
   git commit -m "Perf: 優(yōu)化了菜單模塊"

2.3 Git常用命令

1、第一次初始化

git init
git add .
git commit -m ‘first commit’
git remote add origin git@github.com:帳號(hào)名/倉庫名.git
git pull origin master
git push origin master # -f 強(qiáng)推
- git clone git@github.com:git帳號(hào)名/倉庫名.git

2、工作基本操作

- git checkout master 切到主分支
- git fetch origin 獲取最新變更
- git checkout -b dev origin/master 基于主分支創(chuàng)建dev分支
- git add . 添加到緩存
- git commit -m ‘xxx’ 提交到本地倉庫
- git fetch origin 獲取最新變更

3、初始化倉庫

git init

4、查看倉庫當(dāng)前狀態(tài)

git status

5、文件相關(guān)操作

將文件添加到倉庫:

- git add 文件名 將工作區(qū)的某個(gè)文件添加到暫存區(qū)
- git add . 將當(dāng)前工作區(qū)的所有文件都加入暫存區(qū)
- git add -u 添加所有被tracked文件中被修改或刪除的文件信息到暫存區(qū),不處理untracked的文件
- git add -A 添加所有被tracked文件中被修改或刪除的文件信息到暫存區(qū),包括untracked的文件
- git add -i 進(jìn)入交互界面模式,按需添加文件到緩存區(qū)
將暫存區(qū)文件提交到本地倉庫:
- git commit -m “提交說明” 將暫存區(qū)內(nèi)容提交到本地倉庫
- git commit -a -m “提交說明” 跳過緩存區(qū)操作,直接把工作區(qū)內(nèi)容提交到本地倉庫
比較文件異同
- git diff 工作區(qū)與暫存區(qū)的差異
- git diff 分支名 工作區(qū)與某分支的差異,遠(yuǎn)程分支這樣寫:remotes/origin/分支名
- git diff HEAD 工作區(qū)與HEAD指針指向的內(nèi)容差異
- git diff 提交id 文件路徑 工作區(qū)某文件當(dāng)前版本與歷史版本的差異
- git diff –stage 工作區(qū)文件與上次提交的差異(1.6 版本前用 –cached)
- git diff 版本TAG 查看從某個(gè)版本后都改動(dòng)內(nèi)容
- git diff 分支A 分支B 比較從分支A和分支B的差異(也支持比較兩個(gè)TAG)
- git diff 分支A…分支B 比較兩分支在分開后各自的改動(dòng)

另外:如果只想統(tǒng)計(jì)哪些文件被改動(dòng),多少行被改動(dòng),可以添加 –stat 參數(shù)

6、查看歷史記錄

- git log 查看所有commit記錄(SHA-A校驗(yàn)和,作者名稱,郵箱,提交時(shí)間,提交說明)
- git log -p -次數(shù) 查看最近多少次的提交記錄
- git log –stat 簡略顯示每次提交的內(nèi)容更改
- git log –name-only 僅顯示已修改的文件清單
- git log –name-status 顯示新增,修改,刪除的文件清單
- git log –oneline 讓提交記錄以精簡的一行輸出
- git log –graph –all –online 圖形展示分支的合并歷史
- git log –author=作者 查詢作者的提交記錄(和grep同時(shí)使用要加一個(gè)–all–match參數(shù))
- git log –grep=過濾信息 列出提交信息中包含過濾信息的提交記錄
- git log -S查詢內(nèi)容 和–grep類似,S和查詢內(nèi)容間沒有空格
- git log fileName 查看某文件的修改記錄

7、代碼回滾

- git reset HEAD^ 恢復(fù)成上次提交的版本
- git reset HEAD^^ 恢復(fù)成上上次提交的版本,就是多個(gè)^,以此類推或用~次數(shù)
- git reflog
- git reset –hard 版本號(hào)
- –soft:只是改變HEAD指針指向,緩存區(qū)和工作區(qū)不變;
- –mixed:修改HEAD指針指向,暫存區(qū)內(nèi)容丟失,工作區(qū)不變;
- –hard:修改HEAD指針指向,暫存區(qū)內(nèi)容丟失,工作區(qū)恢復(fù)以前狀態(tài);

8、版本庫相關(guān)操作

- 刪除版本庫文件:git rm 文件名
- 版本庫里的版本替換工作區(qū)的版本:git checkout — test.txt

9、遠(yuǎn)程倉庫相關(guān)操作

同步遠(yuǎn)程倉庫:git push -u origin master
本地倉庫內(nèi)容推送到遠(yuǎn)程倉庫:git remote add origin git@github.com:帳號(hào)名/倉庫名.git
從遠(yuǎn)程倉庫克隆項(xiàng)目到本地:git clone git@github.com:git帳號(hào)名/倉庫名.git
查看遠(yuǎn)程庫信息:git remote
拉取遠(yuǎn)程分支到本地倉庫:
- git checkout -b 本地分支 遠(yuǎn)程分支 # 會(huì)在本地新建分支,并自動(dòng)切換到該分支
- git fetch origin 遠(yuǎn)程分支:本地分支 # 會(huì)在本地新建分支,但不會(huì)自動(dòng)切換,還需checkout
- git branch –set-upstream 本地分支 遠(yuǎn)程分支 # 建立本地分支與遠(yuǎn)程分支的鏈接
同步遠(yuǎn)程倉庫更新::git fetch origin master

10、分支相關(guān)操作

創(chuàng)建分支:git checkout -b dev  -b表示創(chuàng)建并切換分支
上面一條命令相當(dāng)于一面的二條:
git branch dev  創(chuàng)建分支
git checkout dev  切換分支
查看分支:git branch
合并分支:
- git merge dev #用于合并指定分支到當(dāng)前分支
- git merge –no-ff -m “merge with no-ff” dev #加上–no-ff參數(shù)就可以用普通模式合并,合并后的歷史有分支,能看出來曾經(jīng)做過合并
刪除分支:git branch -d dev
查看分支合并圖:git log –graph –pretty=oneline –abbrev-commit

11、git相關(guān)配置

安裝完Git后第一件要做的事,設(shè)置用戶信息(global可換成local在單獨(dú)項(xiàng)目生效):

- git config –global user.name “用戶名” # 設(shè)置用戶名
- git config –global user.email “用戶郵箱” #設(shè)置郵箱
- git config –global user.name # 查看用戶名是否配置成功
- git config –global user.email # 查看郵箱是否配置

12、其他查看配置相關(guān)

- git config –global –list # 查看全局設(shè)置相關(guān)參數(shù)列表
- git config –local –list # 查看本地設(shè)置相關(guān)參數(shù)列表
- git config –system –list # 查看系統(tǒng)配置參數(shù)列表
- git config –list # 查看所有Git的配置(全局+本地+系統(tǒng))
- git config –global color.ui true //顯示git相關(guān)顏色

13、撤消某次提交

- git revert HEAD # 撤銷最近的一個(gè)提交
- git revert 版本號(hào) # 撤銷某次commit

14、標(biāo)簽

- git tag 標(biāo)簽 //打標(biāo)簽命令,默認(rèn)為HEAD
- git tag //顯示所有標(biāo)簽
- git tag 標(biāo)簽 版本號(hào) //給某個(gè)commit版本添加標(biāo)簽
- git show 標(biāo)簽 //顯示某個(gè)標(biāo)簽的詳細(xì)信息

三、提測流程

測試人員主推測試流程,可以要求開發(fā)人員提供修復(fù),發(fā)布,回退等支持。


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

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

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