結(jié)論:
前言
git的分支,用來存儲(chǔ)不同的開發(fā)進(jìn)度,比如
master分支,用于線上正式使用;
dev分支用于開發(fā)新功能使用;
bug分支用于熱修。
舉個(gè)栗子
東寺僧人和西寺僧人出門,碰見了。
東寺僧人問:
西寺僧人說:
東寺僧人不知道該怎么接了。
晚上回去,問住持,住持說,你怎么不說:
第二天,又遇見。
東寺僧人問:
西寺僧人說:
東寺僧人一愣,又不會(huì)接了。
晚上回去,問住持。住持說,你怎么這么笨喲,為什么不問:
第三天,又遇見。
東寺僧人問:
西寺僧人說:
實(shí)際測(cè)試
上一節(jié)扯遠(yuǎn)了,并非要說明高深的道理。星云大師教人開悟。
gitinit
倉(cāng)庫(kù)與目錄同在。不做裸倉(cāng)庫(kù)。
$cat>poem<<eof
>Somedayyouwillcryforme
>LikeIcriedforyou.
>Somedayyou'llmissme
>LikeImissedyou.
>eof
在命令行內(nèi)輸入一些文本,使用eof作為開始和結(jié)束符。
gitstatus
gitaddpoem
gitcommit-m"[add]:添加一首小詩"
gitcheckout-bdev
echo"addbydevbranch">>poem
gitaddpoem
gitcommit-m"[feat]:添加dev特性"
合并之前,切換到主分支;比較兩個(gè)分支差異;執(zhí)行合并。
gitckeckoutmaster
gitdiff--statdev
gitmergedev
dev用完了,還要接著用嗎?當(dāng)然可以,不過,線上master代碼運(yùn)行過程中,發(fā)現(xiàn)了一個(gè)bug,要熱修,還拉到dev分支上處理嗎?
其實(shí),像這種臨時(shí)的任務(wù),拉一個(gè)臨時(shí)分支,用完刪掉,更為整潔。強(qiáng)迫癥必備。
首先拉取線上分支到本地新分支。
gitfetchoriginmaster:bug-fix
gitcheckoutbug-fix
在bug-fix分支上修改完畢,提交修改;切換到master分支,合并bug-fix的修改,然后提交到線上。
echo"Domore">>poem
gitaddpoem
gitcommit-m"[fix-bug]:更多"
gitcheckoutmaster
gitdiff--statbug-fix
gitmergebug-fix
gitpushoriginmaster
充分合并的分支,bug-fix分支完成了使命,我們轉(zhuǎn)到dev上開發(fā)新功能。
合并這個(gè)最新修改的分支,然后刪除bug-fix分支就好了。
gitcheckoutdev
gitdiff--statbug-fix
gitmergebug-fix
gitbranch--deletebug-fix
結(jié)語
為了讓題主對(duì)分支有更為立體的感覺,小助手用了12步,初步解釋了分支的用法。希望可以幫助題主養(yǎng)成分支處理的好習(xí)慣,讓代碼倉(cāng)庫(kù)更為整潔優(yōu)秀。
Happycoding:-)
【本文由@程序員小助手發(fā)布,持續(xù)分享編程故事,】