終端一般 Git命令
增加新功能
///從dev建立特性分支
(dev)$: git checkout -b feature/xxx
///開發(fā)
(feature/xxx)$: blabla
(feature/xxx)$: git add xxx
(feature/xxx)$: git commit -m 'commit comment'
///把特性分支合并到dev
(dev)$: git merge feature/xxx --no-ff
修復(fù)緊急bug
///從master建立hotfix分支
(master)$: git checkout -b hotfix/xxx
///開發(fā)
(hotfix/xxx)$: blabla
(hotfix/xxx)$: git add xxx
(hotfix/xxx)$: git commit -m 'commit comment'
/// 把hotfix分支合并到master遗增,并上線到生產(chǎn)環(huán)境
(master)$: git merge hotfix/xxx --no-ff
///把hotfix分支合并到dev适荣,同步代碼
(dev)$: git merge hotfix/xxx --no-ff
測試環(huán)境代碼
///把dev分支合并到release励背,然后在測試環(huán)境拉取并測試
(release)$: git merge dev --no-ff
生產(chǎn)環(huán)境上線
///把testing測試好的代碼合并到master,運(yùn)維人員操作
(master)$: git merge testing --no-ff
///給版本命名平斩,打Tag
(master)$: git tag -a v0.1 -m '部署包版本名'
新建分支
創(chuàng)建了Develop分支恼策,如下:
Demo: 創(chuàng)建功能開發(fā)分支feature/Harley
效果:
遠(yuǎn)程檢出分支
效果圖:
刪除分支
刪除遠(yuǎn)程分支
? 這是刪除遠(yuǎn)程的分支,本地分支還沒有刪除企孩,需要進(jìn)行下一步刪除本地分支锭碳。
刪除本地分支
拉取
? master
分支的內(nèi)容是最新的,feature/Harley的分支
版本落后于master勿璃,從遠(yuǎn)程拉取內(nèi)容合并到feature/Harley的分支
上擒抛,如下圖步驟:
合并分支
第一種方法
第二種方法
代碼回滾
適用于的場景:
- 提交錯(cuò)代碼,想放棄剛剛提交的部分补疑;
- 代碼發(fā)生沖突歧沪,處理比較麻煩,為了代碼安全莲组,直接回滾到之前干凈的代碼诊胞。
回滾分為本地回滾
和遠(yuǎn)程回滾
;
本地回滾
,回滾已經(jīng)提交的代碼胁编,但還未推送到遠(yuǎn)程倉庫厢钧。
使用模式:
軟合并:
保留上第二次提交的修改內(nèi)容鳞尔,就等第二次提交的【概述】了。
混合合并:
保留上第二次提交的修改內(nèi)容早直,就等第二次提交的【概述】了(與軟合并沒啥區(qū)別)寥假。
強(qiáng)行合并:
清除第二次提交的所有內(nèi)容,第一次提交的【概述】也沒有了霞扬,好像剛剛第一次的提交糕韧。
效果圖:
遠(yuǎn)程回滾
? SourceTree
默認(rèn)是不提供這種操作的,因?yàn)榇嬖陲L(fēng)險(xiǎn)喻圃。所以萤彩,回滾遠(yuǎn)程代碼,一定要注意:
①. 想要放棄的代碼斧拍,是所有開發(fā)成員都一致同意的雀扶;
②. 想要放棄的代碼只是自己的,中間沒有別人的提交記錄肆汹,這可以直接回滾愚墓。
③. 這個(gè)操作過程中,提醒其他成員不要推送代碼昂勉。
-
Frist Stemp
SourceTree 開啟【允許強(qiáng)制推送】權(quán)限 -
Second Stemp
回滾到想提交的位置
-
Third Stemp
強(qiáng)制推送
效果圖:
變基
作用:
- 變基到其他分支浪册,不會(huì)生成新的提交節(jié)點(diǎn);
- 壓縮提交消息岗照;
①變基到其他分支
將Harley 分支內(nèi)容接到 develop
注意:在這里村象,先要拉取,再推送
攒至,否則會(huì)失敗,下面是推送厚者,如下:
打Tag
功能:
- 輕量級(jí)的:它其實(shí)是一個(gè)獨(dú)立的分支,或者說是一個(gè)不可變的分支.指向特定提交對(duì)象的引用;
- 帶附注的:實(shí)際上是存儲(chǔ)在倉庫中的一個(gè)獨(dú)立對(duì)象,它有自身的校驗(yàn)和信息迫吐,包含著標(biāo)簽的名字籍救,標(biāo)簽說明,標(biāo)簽本身也允許使用 GNU Privacy Guard (GPG) 來簽署或驗(yàn)證,電子郵件地址和日期渠抹,一般我們都建議使用含附注型的標(biāo)簽,以便保留相關(guān)信息闪萄。
也可以像下圖那樣打標(biāo)簽???那樣:
Tag 的使用請(qǐng)看這里梧却。
Tag 和 branch 的區(qū)別
:
- tag 對(duì)應(yīng)某次 commit, 是一個(gè)點(diǎn),是不可移動(dòng)的;
- branch 對(duì)應(yīng)一系列 commit败去,是很多點(diǎn)連成的一根線放航,有一個(gè)HEAD 指針,是可以依靠 HEAD 指針移動(dòng)的圆裕。
? 所以广鳍,兩者的區(qū)別決定了使用方式荆几,改動(dòng)代碼用 branch ,不改動(dòng)只查看用 tag。
? tag 和 branch 的相互配合使用赊时,有時(shí)候起到非常方便的效果吨铸,例如 已經(jīng)發(fā)布了 v1.0 v2.0 v3.0 三個(gè)版本,這個(gè)時(shí)候祖秒,我突然想不改現(xiàn)有代碼的前提下诞吱,在 v2.0 的基礎(chǔ)上加個(gè)新功能,作為 v4.0 發(fā)布竭缝。就可以 檢出 v2.0 的代碼作為一個(gè) branch 房维,然后作為開發(fā)分支。
Git 工作流
1??在develop 分支建立 release分支
參考資料
Git 分支闡述
sourceTree合并某次提交
source tree進(jìn)行rebase操作
合并多次提交