偽造目錄(PS:簡書有目錄功能嗎虾攻?會的教教我??):
- Git的簡單實用
- Git的提交模板
- Git的簡單回滾操作
- Git 關(guān)聯(lián)對應的 JIRA 任務
Git的簡單使用
前提需要有個工程文件夾,我們就叫 gitUse 吧劫谅。
# 進入要使用Git的目錄
cd gitUse
# 初始化一個git倉庫
git init
# 項目中應該有你編輯的文件等等超凳,將他們從工作區(qū)放到緩存區(qū)婿崭,也就是SourceTree中的 “暫存”
git add .
# 提交到本地倉庫婆硬,并填寫本次提交的描述信息
git commit -m "這里是本次提交的描述信息"
# 新建遠端的倉庫宰啦,去對應的git網(wǎng)站新建就好了
https://github.com/yylittlecat/gitUse.git
# 關(guān)聯(lián)本地與遠程的倉庫
git remote add origin https://github.com/yylittlecat/gitUse.git
# 將本地倉庫的代碼推送到遠程倉庫對應的分支
git push -u origin master
這樣一個簡單的初始化~提交過程就完成了苏遥。
Git的提交模板
不論 SVN 還是 Git 來進行代碼管理,糟糕的提交信息赡模,一定是被深惡痛絕的田炭,可能自己過段時間看了都會不忍直視。上面提到 commit 時的描述信息漓柑,如果提交的時候能有填寫規(guī)范或者有交互式的約束就好了教硫。這就要用到 git commit template 了叨吮。
我電腦是Mac ,目前用的是 commitizen 這個小工具瞬矩。
commitizen 是基于 Node茶鉴,所以先在你的 Mac 上安裝 node 環(huán)境,之后就可以開始我們下面的步驟了:
- npm 全局安裝利器 commitizen
npm install -g commitizen
- 全局安裝規(guī)范模板景用,好東西大家享 ??
# 全局下載模板涵叮,cz-conventional-changelog 是被業(yè)界廣泛贊許的AngularJS的規(guī)范
npm install -g cz-conventional-changelog
# 路徑
echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc
- 局部安裝規(guī)范模板,小試牛刀 ??
# 進入 Git 工程目錄
cd gitUse
# 如果項目本身就是 node 系列的伞插,例如 web 前端項目割粮,
# 你的項目下應該是有個 package.json 文件的,直接運行下面的命令 安裝規(guī)范模板 應該不會報錯媚污。
commitizen init cz-conventional-changelog --save --save-exact
# 如果 是iOS 或者 Android 項目舀瓢,需要先生成對應的 package.json 文件
npm init
# 然后再執(zhí)行上面那條命令
commitizen init cz-conventional-changelog --save --save-exact
如果是原生項目,執(zhí)行完上面的命令杠步,你會發(fā)現(xiàn)氢伟,又多了幾個文件 ??,就像這個鬼樣子
這些文件不需要做代碼管理幽歼,那我們就加到 忽略文件中好了朵锣,眼不見為凈,當然他還是赫赫地立在那里??甸私,手動忽略文件可以參考這里 SourceTree 全局忽略XC編譯文件無效 诚些。
接下來我們使用 git cz
命令來提交一下試試
會出現(xiàn)上面這個簡潔的交互,通過上下鍵來選擇 本次修改的類型 皇型,每個提交類型后面都有說明诬烹,看看選擇哪個合適,然后一步一步 跟著說明 enter 下去就 ?? 了弃鸦。
Type:
feat :新功能
fix :修復bug
doc : 文檔改變
style : 代碼格式改變
refactor :某個已有功能重構(gòu)
perf :性能優(yōu)化
test :增加測試
build :改變了build工具 如 grunt換成了 npm
revert: 撤銷上一次的 commit
Scope:
scope :用來說明此次修改的影響范圍 可以隨便填寫任何東西绞吁,commitizen也給出了幾個 如:location 、browser唬格、compile家破。
不過我推薦使用:
all :表示影響面大 ,如修改了網(wǎng)絡框架 會對真?zhèn)€程序產(chǎn)生影響
loation: 表示影響小购岗,某個小小的功能
module:表示會影響某個模塊 如登錄模塊汰聋、首頁模塊 、用戶管理模塊等等
Others:
subject: 用來簡要描述本次改動喊积,概述就好了
body:具體的修改信息 應該盡量詳細
footer:放置寫備注啥的烹困,如果是 bug ,可以把bug id放入
最后會看到這樣的結(jié)果:
從SourceTree 和 遠程倉庫 看一下提交記錄乾吻,可以直觀看到該次提交修改的描述:
Git的簡單回滾操作
就算Git中分支髓梅、提交拟蜻、gitflow 分的都很清楚,也難免會遇到需要回退到前幾個版本的尷尬境地女淑,你都是怎么做的呢瞭郑?施展CV大法
嗎???
兩個簡單的命令就可以讓他滾回去:
git log -(需要查看的版本條數(shù))
git reset --hard [提交對應的編號]
我們來試試查看最近的三個提交是怎么樣的 git log -3
我們可以看到每一個提交從上到下都有鸭你,對應的哈希值屈张、作者、郵箱袱巨、日期阁谆,以及我上面提到的提交信息
,非常重要愉老,不然你都不知道這次提交是為了什么场绿,甚至找不到滾回去的位置。
假設我們要回滾到第三條嫉入,也就是5d9c3b1dab8de8932ebf8deffef821cf2052fd65
這一條焰盗,執(zhí)行命令git reset --hard 5d9c3b1dab8de8932ebf8deffef821cf2052fd65
即可,當前分支就回退到這個版本了咒林。
回退后熬拒,我們可能會修改代碼,這個時候又有新的問題了垫竞,以前的提交已經(jīng)push到遠程倉庫澎粟,也就是我們目前的代碼落后兩個版本,同時有一個新的commit待提交欢瞪。
兩個方式:
1活烙、強勢一點:硬提
git push -f origin [分支名稱]
2、委婉的:先拉去->解決沖突->重新提交整合后的代碼
git pull origin develop
-> solve conflct
-> git push -u origin develop
記得寫清楚提交信息鴨G补摹Pフ怠!F锼睢回懦!
這樣一個簡單的回滾就完成了。
不要告訴我你不會解決沖突曾我。??????????
Git 關(guān)聯(lián)對應的 JIRA 任務
在提交修改的時候,描述信息加上在 JIRA 的任務/問題 編號健民,就可以關(guān)聯(lián)到一起了抒巢。