Git工作流程和分支模型

分支模型

http://nvie.com/posts/a-successful-git-branching-model/


Git工作流程

服務(wù)器上常駐的分支有兩個:master 油讯、testdevelop延欠∧岸遥可以認為master代表的是生產(chǎn)環(huán)境,test代表的是測試環(huán)境由捎,develop代表開發(fā)環(huán)境兔综。

也就是說: master分支上的任何一個點檢出都穩(wěn)定的,可以部署到生產(chǎn)環(huán)境服務(wù)器;而test分支上每個點都可以檢出软驰,能啟動運行涧窒,但是未經(jīng)全部測試,還存在bug锭亏,develop分支上任何一個點撿出來可以部署到開發(fā)環(huán)境上纠吴,這個開發(fā)環(huán)境是只針對開發(fā)調(diào)試用,這個環(huán)境可能會存在很多的問題慧瘤。

注意事項:切記不要在master分支上面直接提交代碼 不要使用 git push origin master呜象, 同時,master分支上的代碼也是只能通過合并test分支完成的 “git merge --no-ff test”


主要流程有4個:

  • 已發(fā)布版本(生產(chǎn)環(huán)境)bug處理
  • 未發(fā)布版本(測試環(huán)境)bug處理
  • 新特性開發(fā)
  • 合并請求處理

1.已發(fā)布版本bug處理:就是master上有錯誤碑隆,從test分支檢出恭陡,處理完成后雙向合并到testdevelop歇父,檢出的分支不提交到服務(wù)器馏鹤,在test驗證測試后,然后merge到master片择。

# 從test分支檢出
git checkout test # 切換到 test 分支
git fetch && git rebase # 從服務(wù)器下載最新代碼劫狠,如果本地有修改則合并上去拴疤,用 git pull --rebase 也可以,注意別用 git pull独泞,會導(dǎo)致git網(wǎng)絡(luò)圖混亂
git checkout -b hotfix#xxx

# 在${hotfix#xxx}分支上完成Bug處理呐矾,一次或多次 git commit

# 合并到test和develop

git checkout test
# 把最新的代碼撿下來并合并
git fetch && git rebase
# 把hotfix#xxxx分支合并到master
git merge --no-ff ${hotfix#xxx}
# 把合并完的master分支推到服務(wù)器上
git push origin test

git checkout develop
# 把最新的代碼撿下來并合并
git fetch && git rebase
# 把hotfix#xxxx分支合并到develop上
git merge --no-ff ${hotfix#xxx}
# 把合并完的develop分支推到服務(wù)器上
git push origin develop

# 把test分支的代碼合并到master
git checkout master
git fetch && git rebase
git merge --no-ff test
git push origin master

# 刪除本地開發(fā)分支
git branch -d ${hotfix#xxx}

2.未發(fā)布版本bug處理:也就是說是在測試環(huán)境上的bug處理,從test分支檢出懦砂,處理完成后雙向合并到testdevelop

# 合并到test和develop

git checkout test
# 把最新的代碼撿下來并合并
git fetch && git rebase
# 把hotfix#xxxx分支合并到master
git merge --no-ff ${hotfix#xxx}
# 把合并完的master分支推到服務(wù)器上
git push origin test

git checkout develop
# 把最新的代碼撿下來并合并
git fetch && git rebase
# 把hotfix#xxxx分支合并到develop上
git merge --no-ff ${hotfix#xxx}
# 把合并完的develop分支推到服務(wù)器上
git push origin develop

3.新特性開發(fā):從develop分支檢出蜒犯,開發(fā)完合并到develop分支,檢出的新特性分支需要提交到服務(wù)器上荞膘,便于多人協(xié)作

# 從develop分支檢出
git checkout develop
git fetch && git rebase # 從服務(wù)器下載最新代碼罚随,并與本地修改合并(如果有)
git checkout -b ${feature_name} develop # 分支名用小寫英文單詞,多個單詞以短橫線"-"分隔 

# 提交新特性分支到服務(wù)器
git push origin ${feature_name}

# 在${feature_name}分支上開發(fā)羽资,多次git commit和git push origin ${feature_name}

#將完成的新特性提交到服務(wù)器
git push origin ${feature_name} 

# 在gitlab中創(chuàng)建一個pull request

4.合并請求處理:主要指新特性開發(fā)完成后淘菩,合并到develop分支

# 代碼審核

# 合并到develop分支
git checkout develop
git merge --no-ff ${feature_name}  

# 提交develop到服務(wù)器,并刪除新特性分支
git push origin develop

# 刪除本地的分支
git branch -d ${feature_name}
# 刪除服務(wù)器上的分支
git push origin :${feature_name} 

注意:相同分支的合并不要用 git merge屠升,也不要用 git pull潮改,要用 git rebase


對于服務(wù)器上別人已經(jīng)刪除的分支,可以用 git branch -rd origin/【分支名】 清理掉
但是在我本地 git branch -a 查看腹暖,還有顯示 remotes/origin/storetrsl 這個
這時可以用 git branch -rd origin/storetrsl

新功能開發(fā)時汇在,如果遇到需要將develop上面代碼合并到自己新功能分支上面的情況

#首先檢出服務(wù)器端最新代碼
git fetch origin

#將最新的develop分支代碼合并到新功能分支,這里需要處理沖突
git rebase origin/develop

#然后刪掉遠程倉庫的該功能分支
git push origin :${feature_name}

#最后微服,將本地的新的新功能分支推到服務(wù)器
git push origin ${feature_name}

命名

  • hotfix#255 : 線上bug
  • fix#255 :(未部署代碼中的bug)
  • feature#273 : (新特性)
  • improvement#269 : 改進(重構(gòu)等都可算改進)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末趾疚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子以蕴,更是在濱河造成了極大的恐慌糙麦,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丛肮,死亡現(xiàn)場離奇詭異赡磅,居然都是意外死亡,警方通過查閱死者的電腦和手機宝与,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門焚廊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人习劫,你說我怎么就攤上這事咆瘟。” “怎么了诽里?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵袒餐,是天一觀的道長。 經(jīng)常有香客問我谤狡,道長灸眼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任墓懂,我火速辦了婚禮焰宣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捕仔。我一直安慰自己匕积,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布榜跌。 她就那樣靜靜地躺著闸天,像睡著了一般。 火紅的嫁衣襯著肌膚如雪斜做。 梳的紋絲不亂的頭發(fā)上苞氮,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音瓤逼,去河邊找鬼笼吟。 笑死,一個胖子當(dāng)著我的面吹牛霸旗,可吹牛的內(nèi)容都是我干的贷帮。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼诱告,長吁一口氣:“原來是場噩夢啊……” “哼撵枢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤锄禽,失蹤者是張志新(化名)和其女友劉穎潜必,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沃但,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡磁滚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了宵晚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片垂攘。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖淤刃,靈堂內(nèi)的尸體忽然破棺而出晒他,到底是詐尸還是另有隱情,我是刑警寧澤逸贾,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布仪芒,位于F島的核電站,受9級特大地震影響耕陷,放射性物質(zhì)發(fā)生泄漏掂名。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一哟沫、第九天 我趴在偏房一處隱蔽的房頂上張望饺蔑。 院中可真熱鬧,春花似錦嗜诀、人聲如沸猾警。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽发皿。三九已至,卻和暖如春拂蝎,著一層夾襖步出監(jiān)牢的瞬間穴墅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工温自, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留玄货,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓悼泌,卻偏偏與公主長得像松捉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子馆里,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Git分支管理 master:主分支隘世,當(dāng)前分支上的代碼隨時可以直接發(fā)布可柿,并且只能通過Pull Request從其他...
    UEUEO閱讀 9,617評論 5 33
  • 尋找和為定值的多個數(shù) 題目描述: 輸入兩個整數(shù) n 和 sum ,從數(shù)列 1丙者,2复斥,3 ....... n 中隨意...
    MinoyJet閱讀 1,886評論 0 1
  • 第一次跟他接吻 快親上的時候 他突然說等一下 她就納悶了 他要干嘛 他從兜里拿出三個糖 就上好佳那種圓的 草莓蘋果...
    友利奈緒閱讀 398評論 0 0
  • 激情是人的一種精神狀態(tài)! 人無激情蔓钟,一事無成永票。 有時候人與人在一起聊天卵贱, 都會講到激情二字滥沫,用有激情來形容某一個朋...
    劉平努力閱讀 343評論 0 0
  • 今天上午聽了陳耀老師關(guān)于科學(xué)教育的敘事后兰绣,回想起自己對兒子小時候萌生的好奇心沒有給予正確的引導(dǎo),有幾分內(nèi)...
    時尚春天閱讀 806評論 3 3