背景
用 Git 管理代碼版本,希望 開(kāi)發(fā)-發(fā)布 流程更加規(guī)范繁涂,至少在多人協(xié)作的項(xiàng)目上第练,需要防止開(kāi)發(fā)時(shí)的代碼合并問(wèn)題。
內(nèi)容
基本知識(shí)請(qǐng)參考 Git-Flow 流程每强,這是到目前為止始腾,最清爽的 Git 操作流程,它并非是全新的技術(shù)空执,但它可以保證你在開(kāi)發(fā)過(guò)程中浪箭,降低因不規(guī)范操作帶來(lái)的可怕的時(shí)間成本。
在 IntelliJ IDEA 中有一個(gè) Git-Flow Plugin辨绊,它很好用奶栖,但目前幾乎沒(méi)有相關(guān)文檔來(lái)描述如何使用。
當(dāng)?shù)谝淮螐?IntelliJ IDEA 中安裝 Git-Flow Plugin门坷,我非常激動(dòng)驼抹,因?yàn)槲覐拇瞬挥迷?SourceTree
中浪費(fèi)大量的時(shí)間,以祈求 SourceTree
能夠幫我將 Git-Flow 流程執(zhí)行成功拜鹤。
對(duì)于新手來(lái)說(shuō),使用 Git-Flow Plugin 會(huì)有以下幾個(gè)困惑:
我什么時(shí)候開(kāi)始使用流椒?
任何時(shí)候敏簿。只要你的倉(cāng)庫(kù)不存在違反 Git-Flow 規(guī)范的分支名稱,并且你當(dāng)前的工作空間是干凈的(這表示你應(yīng)該提交所有的本地改動(dòng)宣虾,但無(wú)須為此push
到遠(yuǎn)程倉(cāng)庫(kù))初始化倉(cāng)庫(kù)會(huì)帶來(lái)什么惯裕?
清爽。當(dāng)你發(fā)現(xiàn)No Gitflow
(圖1)時(shí)绣硝,你可以點(diǎn)擊它蜻势,再選擇初始化你當(dāng)前的倉(cāng)庫(kù)(圖2)。它會(huì)建立一個(gè)從master
分支檢出的develop
分支鹉胖,并(可能)保證兩個(gè)分支的代碼與遠(yuǎn)程倉(cāng)庫(kù)同步握玛。隨后你可以發(fā)現(xiàn)更多的操作,比如新的功能甫菠、發(fā)布挠铲、修復(fù)(圖3)。但在這之前寂诱,你必須選擇使用默認(rèn)配置拂苹,還是自定義配置(圖4。注意痰洒,圖中的自定義配置與默認(rèn)配置相同)瓢棒。
注意:第一個(gè)選項(xiàng)是產(chǎn)品發(fā)布的分支名稱浴韭,一般來(lái)說(shuō),生產(chǎn)環(huán)境總是穩(wěn)定的脯宿,我們選擇 master
分支念颈;第二個(gè)選項(xiàng)是下一次發(fā)布開(kāi)發(fā)的分支名稱,實(shí)際上就是開(kāi)發(fā)分支嗅绰,只不過(guò)當(dāng)需要發(fā)布時(shí)舍肠,會(huì)從這個(gè)分支 check out
出來(lái)新的發(fā)布分支;第三個(gè)到第七個(gè)無(wú)需改動(dòng)窘面,除非你有特殊的命名嗜好翠语。
-
如果我忘記使用
Git-Flow
怎么辦?
沒(méi)關(guān)系财边。既然你不喜歡肌括,就卸載它好了。(開(kāi)個(gè)玩笑QAQ)實(shí)際上 Git-Flow 只是一種規(guī)范酣难,如果你的操作不符合規(guī)范谍夭,那自然需要花費(fèi)額外的精力,使倉(cāng)庫(kù)回到正規(guī)上來(lái)憨募。那么你應(yīng)該仔細(xì)研讀 Git-Flow紧索,當(dāng)你精通此道時(shí),或許你并不需要插件來(lái)幫你完成規(guī)范操作菜谣。
提示:空倉(cāng)庫(kù)珠漂,比如從 GitHub
、GitLab
尾膊、碼云
等等地方創(chuàng)建的新倉(cāng)庫(kù)媳危,你必須先提交一個(gè)版本到 master
分支,再進(jìn)行 Git-Flow Plugin 的初始化冈敛。否則待笑,你就必須在初始化之后,從 develop
分支切換到 master
分支抓谴,再 push
到遠(yuǎn)端倉(cāng)庫(kù)暮蹂。這是因?yàn)椋諅}(cāng)庫(kù)沒(méi)有默認(rèn)分支癌压,第一個(gè)提交并推送上來(lái)的分支椎侠,就是默認(rèn)分支。如果你擁有修改默認(rèn)分支的權(quán)限措拇,那對(duì)你沒(méi)有影響我纪,但一般你只有開(kāi)發(fā)權(quán)限,這時(shí)候你就無(wú)法修改倉(cāng)庫(kù)設(shè)置了。
總結(jié)
Git-Flow Plugin 就像工作秘書(shū)一樣為你服務(wù)浅悉,你可以放心大膽地干趟据,只要你足夠熟練,不用擔(dān)心“鬧出人命”术健。