hello大家好,昨天我已經(jīng)講了Git分支的理論部分沒(méi)有看的同學(xué)請(qǐng)點(diǎn)擊這里Git分支那點(diǎn)事兒(上):什么是分支威创,如何管理分支?呛谜,馬克思爺爺說(shuō)過(guò),理論要與實(shí)踐相結(jié)合妒牙,那么今天,我們就以在辦公中常見(jiàn)的開(kāi)發(fā)場(chǎng)景為例对妄,來(lái)具體介紹分支的用法剪菱,同時(shí)附帶一些簡(jiǎn)單的Git指令,下面讓我們開(kāi)始吧~
一孝常、新項(xiàng)目來(lái)啦
公司里來(lái)了一個(gè)新項(xiàng)目旗们,大A是開(kāi)發(fā)組長(zhǎng),小b小c是開(kāi)發(fā)組員构灸,接到任務(wù)后上渴,大A首先在中央倉(cāng)庫(kù)建立一個(gè)項(xiàng)目倉(cāng)庫(kù),master為主分支,然后大A在本地為master配套一個(gè)develop分支驰贷,push到服務(wù)器上
git branch develop
git push -u origin develop
以后develop分支將會(huì)包含項(xiàng)目的全部歷史盛嘿,而master只包含部分歷史。當(dāng)小b和小c需要開(kāi)發(fā)時(shí)括袒,他們應(yīng)該先鏈接中央倉(cāng)庫(kù)次兆,然后檢出develop分支
git checkout -b develop origin/develop
checkout命令加 -b 代表創(chuàng)建并切換,相當(dāng)于以下兩條命令
git branch develop
git checkout develop
二锹锰、小b和小c開(kāi)始開(kāi)發(fā)新功能
大A給小b小c分配完任務(wù)后芥炭,他們開(kāi)始各自的開(kāi)發(fā),這時(shí)恃慧,他們需要為各自的功能創(chuàng)建相應(yīng)的分支园蝠,新的分支應(yīng)基于develop分支,而不是master分支痢士。
git branch branch-name develop
這里的branch-name自己可以隨意定義名稱(chēng)彪薛,但是千萬(wàn)別用test,因?yàn)槲以囘^(guò)怠蹂,這個(gè)名字非法善延,哈哈哈
三、小b小c完成功能開(kāi)發(fā)
開(kāi)發(fā)功能完成后城侧,小b小c覺(jué)得功能ok了易遣,這時(shí)候他們就可以把自己的分支合并到develop上,然后push到中央倉(cāng)庫(kù)
git pull origin develop
git checkout develop
git merge branch-name
git push
//如果覺(jué)得當(dāng)前分支不需要了嫌佑,可以執(zhí)行
git branch -d branch-name
第一條pull豆茫,是確保在合并功能前develop分支是最新的,注意屋摇,功能只能合并到develop分支
四揩魂、組長(zhǎng)準(zhǔn)備功能發(fā)布
組長(zhǎng)大A在看到組員功能完成后,準(zhǔn)備發(fā)布第一個(gè)功能測(cè)試版本
git branch release/v0.1.0 develop
這個(gè)分支是清理發(fā)布炮温、執(zhí)行所有測(cè)試肤京、更新文檔的地方,一個(gè)用于專(zhuān)門(mén)改善發(fā)布功能的分支茅特。
只要把這個(gè)分支push到中央倉(cāng)庫(kù)忘分,這個(gè)分支的功能就是凍結(jié)的。任何在develop的分支中的新功能都推到下一個(gè)release中
五白修、完成發(fā)布
一旦release測(cè)試完畢妒峦,這是,需要將release合并到master上兵睛,修改后的release同時(shí)也要合并回develop上肯骇,因?yàn)楦暮玫墓δ茉谝院蟮膁evelop分上也要體現(xiàn)出來(lái)
git checkout master
git merge release/0.1.0
git push
git checkout develop
git merge release/0.1.0
git push
git branch -d release/0.1.0
在release合并到master后窥浪,還要給master分支打tag以方便跟蹤。
git tag -a v0.1.0 -m "initial public release" master
git push --tags
六笛丙、用戶(hù)發(fā)現(xiàn)bug
對(duì)外發(fā)布后漾脂,發(fā)現(xiàn)有bug,為了處理bug胚鸯,小b(小c)從master分支拉出來(lái)一個(gè)hotfix維護(hù)分支骨稿,提交修改以解決問(wèn)題,然后直接合并回master和develop分支
合并完畢后姜钳,刪除hotfix分支坦冠。
最后推薦一個(gè)可視化的git工具,SourceTree哥桥,方便新手同學(xué)使用
引用
http://blog.jobbole.com/23398/ 阮一峰:Git分支管理策略
http://www.bootcss.com/p/git-guide/ git-簡(jiǎn)易指南
http://nvie.com/posts/a-successful-git-branching-model/ A successful Git branching model
https://www.sourcetreeapp.com/ sourcetree 分支管理工具
http://semver.org/lang/zh-CN/ 語(yǔ)義化版本2.0.0