摘要:所有提供給用戶使用的正式版本,都在這個(gè)主分支上發(fā)布。如果想正式對(duì)外發(fā)布,就在分支上,對(duì)分支進(jìn)行合并。為了保證版本演進(jìn)的清晰,我們希望采用這種做法。開(kāi)發(fā)完成后,要再并入。修補(bǔ)結(jié)束以后,再合并進(jìn)和分支。
?## 基礎(chǔ)分支
master 主分支
develop 開(kāi)發(fā)分支
feature 功能分支
release 預(yù)發(fā)布分支
fixbug 修補(bǔ)分支
說(shuō)明:臨時(shí)分支命名形式feature-x,release-0.0,fixbug-x
0.檢出倉(cāng)庫(kù)
git clone /path/to/repository #如果是遠(yuǎn)程服務(wù)器上的代碼庫(kù),則: git clone username@host:/path/to/repository
1.添加與提交
#添加到緩沖區(qū) git add * #提交代碼更改 git commit -m"代碼提交信息" #推送到服務(wù)器 git push origin master
2.分支
#創(chuàng)建分支 git checkout -b feature_x #切換回主分支 git checkout master #刪除新建的分支 git branch -d feature_x #分支推送到服務(wù)器 git push origin
3.更新與合并
#更新至最新版本 git pull #合并其他分支到你的當(dāng)前分支 git merge#如果出現(xiàn)沖突,需要正確合并這些沖突,完畢后 git add #查看差異 git diff
4.標(biāo)簽
git tag 1.0.0 1b3e2d3gdjd #查看提交ID git log
5.替換本地改動(dòng)
git checkout --主分支Master#假如你想要丟棄你所有的本地改動(dòng)與提交,可以到服務(wù)器上獲取最新的版本并將你本地主分支指向到它 git fetch origin git reset --hard origin/master
代碼庫(kù)應(yīng)該有一個(gè)、且僅有一個(gè)主分支。所有提供給用戶使用的正式版本,都在這個(gè)主分支上發(fā)布。Git主分支的名字,默認(rèn)叫做Master。它是自動(dòng)建立的,版本庫(kù)初始化以后,默認(rèn)就是在主分支在進(jìn)行開(kāi)發(fā)。開(kāi)發(fā)分支Develop
主分支只用來(lái)分布重大版本,日常開(kāi)發(fā)應(yīng)該在另一條分支上完成。我們把開(kāi)發(fā)用的分支,叫做Develop。這個(gè)分支可以用來(lái)生成代碼的最新隔夜版本(nightly)。如果想正式對(duì)外發(fā)布,就在Master分支上,對(duì)Develop分支進(jìn)行"合并"(merge)。 # Git創(chuàng)建Develop分支的命令:
git checkout -b develop master
# 將Develop分支發(fā)布到Master分支的命令:
# 切換到Master分支
git checkout master
# 對(duì)Develop分支進(jìn)行合并
git merge --no-ff develop
#這里稍微解釋一下,上一條命令的--no-ff參數(shù)是什么意思。默認(rèn)情況下,Git執(zhí)行"快進(jìn)式合并"(fast-farward merge),會(huì)直接將Master分支指向Develop分支。 #使用--no-ff參數(shù)后,會(huì)執(zhí)行正常合并,在Master分支上生成一個(gè)新節(jié)點(diǎn)。為了保證版本演進(jìn)的清晰,我們希望采用這種做法。關(guān)于合并的更多解釋,請(qǐng)參考Benjamin Sandofsky的《Understanding the Git Workflow》。功能分支
它是為了開(kāi)發(fā)某種特定功能,從Develop分支上面分出來(lái)的。開(kāi)發(fā)完成后,要再并入Develop。 #功能分支的名字,可以采用feature-*的形式命名。 #創(chuàng)建一個(gè)功能分支:
git checkout -b feature-x develop
#開(kāi)發(fā)完成后,將功能分支合并到develop分支:
git checkout develop
git merge --no-ff feature-x
#刪除feature分支:
git branch -d feature-x
預(yù)發(fā)布分支它是指發(fā)布正式版本之前(即合并到Master分支之前),我們可能需要有一個(gè)預(yù)發(fā)布的版本進(jìn)行測(cè)試。預(yù)發(fā)布分支是從Develop分支上面分出來(lái)的,預(yù)發(fā)布結(jié)束以后,必須合并進(jìn)Develop和Master分支。它的命名,可以采用release-*的形式。 #創(chuàng)建一個(gè)預(yù)發(fā)布分支 git checkout -b release-1.2 develop #確認(rèn)沒(méi)有問(wèn)題后,合并到master分支 git checkout master
git merge --no-ff release-1.2
# 對(duì)合并生成的新節(jié)點(diǎn),做一個(gè)標(biāo)簽
git tag -a 1.2
#再合并到develop分支 git checkout develop
git merge --no-ff release-1.2
#最后,刪除預(yù)發(fā)布分支 git branch -d release-1.2修補(bǔ)Bug分支
軟件正式發(fā)布以后,難免會(huì)出現(xiàn)bug。這時(shí)就需要?jiǎng)?chuàng)建一個(gè)分支,進(jìn)行bug修補(bǔ)。修補(bǔ)bug分支是從Master分支上面分出來(lái)的。修補(bǔ)結(jié)束以后,再合并進(jìn)Master和Develop分支。它的命名,可以采用fixbug-*的形式。 #創(chuàng)建一個(gè)修補(bǔ)bug分支: git checkout -b fixbug-0.1 master 修補(bǔ)結(jié)束后,合并到master分支:
git checkout master
git merge --no-ff fixbug-0.1
git tag -a 0.1.1
#再合并到develop分支:
git checkout develop
git merge --no-ff fixbug-0.1
#最后,刪除"修補(bǔ)bug分支":
git branch -d fixbug-0.1
建議新手閱讀這篇文章http://rogerdudler.github.com/git-guide/index.zh.html分子合并模式 添加一個(gè)遠(yuǎn)程版本庫(kù)
git remote add smartdevelop https://github.com/smartdevel...
獲取遠(yuǎn)程版本庫(kù)gotgithub的分支和提交git fetch smartdevelop
將遠(yuǎn)程分支合并到當(dāng)前分支中git merge smartdevelop/master
git merge smartdevelop/develop 提交到本地倉(cāng)庫(kù)git add *
git commit -m""
git push
本地拉取倉(cāng)庫(kù)git pull
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/83880.html
摘要:容易理解創(chuàng)建一個(gè)構(gòu)造函數(shù)并使用該函數(shù)和操作符初始化對(duì)象。被繼承的對(duì)象被稱作原型,并且繼承的屬性可能通過(guò)構(gòu)造函數(shù)的對(duì)象找到。 This is my first blood! 第一次在segmentfault上寫(chao)文章。 內(nèi)容提要:認(rèn)(wu)真(liao)的整理一下javascript對(duì)象的知識(shí),人家還是菜鳥(niǎo),必須要搞懂啊。 PS:1.真的菜,所以看到文章的同學(xué),推薦采用隨緣閱讀...
摘要:官方默認(rèn)項(xiàng)目是存放了一個(gè)為的打開(kāi)文件夾有一個(gè),還有一個(gè)名為組件的文件夾,里面放了一個(gè)文件。部分我們會(huì)發(fā)現(xiàn)這幾排字就是顯示在頁(yè)面的幾排文字部分這其中的這個(gè)文件引入了,還有上述的。結(jié)合查詢其他說(shuō)法,就是說(shuō)它會(huì)把是的元素以形式替換。 前言 我很早就想來(lái)學(xué)習(xí)學(xué)習(xí)vue.js啦,終于有了那么一些空閑的時(shí)間可以拿來(lái)學(xué)習(xí),于是從前天開(kāi)始我就每天抽一個(gè)多小時(shí)來(lái)體驗(yàn)vue.js。當(dāng)然啦,因?yàn)槭切“兹腴T,...
摘要:為什么會(huì)產(chǎn)生閉包究其根本,是因?yàn)榇淼暮瘮?shù)包含的作用域。而在作用域鏈中,外部函數(shù)的活動(dòng)對(duì)象始終處于第二位,外部函數(shù)的外部函數(shù)的活動(dòng)對(duì)象處于第三位直到作為作用域鏈終點(diǎn)的全局執(zhí)行環(huán)境。 前言 此文的內(nèi)容主要是來(lái)自看書的總結(jié)+小小的實(shí)踐哦~會(huì)不斷更新總結(jié)。 什么是閉包 書上是這樣定義閉包的: 有權(quán)訪問(wèn)另一個(gè)函數(shù)作用域中變量的函數(shù)。 舉一個(gè)例子: function test(){ va...
摘要:本文將繼續(xù)介紹簡(jiǎn)單的增刪改查方法和對(duì)對(duì)象實(shí)例狀態(tài)的理解查詢方法暫不提及。二實(shí)例狀態(tài)中的對(duì)象有中狀態(tài)瞬時(shí)對(duì)象持久化對(duì)象和離線對(duì)象也叫做脫管對(duì)象。持久化狀態(tài)已經(jīng)被持久化,并且加入到緩存中。處于游離狀態(tài)的對(duì)象稱為游離對(duì)象。 在上一篇《初識(shí)Hibernate》中簡(jiǎn)單介紹了在Hibernate如何加載對(duì)象和持久化對(duì)象,以及Hibernate中對(duì)象實(shí)例狀態(tài)。本文將繼續(xù)介紹Hibernate簡(jiǎn)單的增...
摘要:之銀彈技法下文這些淫巧在之前自認(rèn)為是居家必備,裝逼撩妹的必備之物,博主一直敝帚自珍,不愿拿出來(lái)分享,現(xiàn)如今,極盡能事,我知道再不拿出來(lái)就在沒(méi)有價(jià)值了來(lái)由博主入行前端寫時(shí)候,因?yàn)樾枰嫒莸桶姹?,時(shí)常需要在繁雜冗長(zhǎng)的操作夾雜的代碼中,盡可能巧妙 JavaScript 之銀彈の技法 下文這些淫巧在之前自認(rèn)為是居家必備,裝逼撩妹的必備之物,博主一直敝帚自珍,不愿拿出來(lái)分享,現(xiàn)如今,ES6+極盡...
閱讀 1583·2025-02-07 13:29
閱讀 1008·2024-11-07 18:25
閱讀 131502·2024-02-01 10:43
閱讀 1375·2024-01-31 14:58
閱讀 1149·2024-01-31 14:54
閱讀 83576·2024-01-29 17:11
閱讀 3877·2024-01-25 14:55
閱讀 2395·2023-06-02 13:36