Git的分支合并

版本庫中的分支,就像科幻小說中的平行宇宙,再加上時(shí)光穿梭機(jī)一般的版本前進(jìn)芦瘾、回退功能鸳粉,程序員在版本庫上就像上帝一樣的存在:想去哪兒就去哪兒(不同版本的切換)扔涧,想在哪個(gè)宇宙發(fā)呆就在哪個(gè)宇宙(分支切換)發(fā)呆。

起初届谈,程序員創(chuàng)造版本庫枯夜。
分支是空虛混沌。版本黑暗疼约。程序員的HEAD指在master上卤档。
程序員說,要有分支程剥,就有了分支劝枣。
程序員看分支是好的,就把分支合并了 织鲸。

分支在實(shí)際中有什么用呢舔腾?假設(shè)你準(zhǔn)備開發(fā)一個(gè)新功能,但是需要兩周才能完成搂擦,第一周你寫了50%的代碼稳诚,如果立刻提交,由于代碼還沒寫完瀑踢,不完整的代碼庫會導(dǎo)致別人不能干活了扳还。如果等代碼全部寫完再一次提交才避,又存在丟失每天進(jìn)度的巨大風(fēng)險(xiǎn)。

現(xiàn)在有了分支氨距,就不用怕了桑逝。你創(chuàng)建了一個(gè)屬于你自己的分支,別人看不到俏让,還繼續(xù)在原來的分支上正常工作楞遏,而你在自己的分支上干活,想提交就提交首昔,直到開發(fā)完畢后寡喝,再一次性合并到原來的分支上,這樣勒奇,既安全预鬓,又不影響別人工作。

媽媽再也不用擔(dān)心我的代碼丟失了撬陵。--Git版本管理系統(tǒng)

當(dāng)我們在版本庫中工作時(shí)珊皿,每次提交,Git都把它們串成一條時(shí)間線巨税,這條時(shí)間線就是一個(gè)分支蟋定。默認(rèn)情況下,只有一條時(shí)間線草添,在Git里驶兜,這個(gè)分支叫主分支,即master分支远寸。HEAD嚴(yán)格來說不是指向提交抄淑,而是指向mastermaster才是指向提交的驰后,所以肆资,HEAD指向的就是當(dāng)前分支。

HEAD與master

每次提交灶芝,master分支都會向前移動一步郑原,這樣,隨著版本不斷提交夜涕,master分支的線也越來越長犯犁。

當(dāng)我們創(chuàng)建新的分支,例如dev時(shí)女器,Git新建了一個(gè)指針叫dev酸役,指向master相同的提交,再把HEAD指向dev,就表示當(dāng)前分支在dev上涣澡。

創(chuàng)建分支

從現(xiàn)在開始贱呐,對工作區(qū)的修改和提交就是針對dev分支了,比如新提交一次后暑塑,dev指針往前移動一步吼句,而master指針不變。

在分支上工作

假如我們在dev上的工作完成了事格,就可以把dev合并到master上。Git怎么合并呢搞隐?最簡單的方法驹愚,就是直接把master指向dev的當(dāng)前提交,就完成了合并劣纲。

合并

合并完分支后逢捺,根據(jù)需要可以刪除dev分支。刪除dev分支就是把dev指針給刪掉癞季,刪掉后劫瞳,我們就剩下了一條master分支。

合并后刪除分支

創(chuàng)建分支

執(zhí)行git checkout -b dev命令绷柒,創(chuàng)建dev分支志于。

創(chuàng)建dev分支

在dev分支上進(jìn)行修改提交。

在分支上工作

由于git版本庫在本地废睦,再加上其優(yōu)秀的設(shè)計(jì)(指針)伺绽,創(chuàng)建分支和切換分支非常快速嗜湃,所以你一定會愛上“創(chuàng)建分支奈应、在上面開發(fā)、合并分支购披、刪除分支”這種開發(fā)方式的杖挣。與SVN相比較,Git實(shí)在是方便太多刚陡,而且惩妇,并不會和服務(wù)器進(jìn)行交互。

合并分支

隨著日常工作的推進(jìn)橘荠,我們在不同的分支上進(jìn)行工作屿附,當(dāng)一個(gè)階段的工作完成后,就需要把工作成果合并到指定的分支(很有可能是master)上哥童。

準(zhǔn)備合并

首先挺份,我們把dev分支上的修改合并到master,再把fix_bug1762分支合并到master贮懈,以接收兩個(gè)開發(fā)人員的工作匀泊。

在當(dāng)前分支(如master)上執(zhí)行git merge dev优训,把dev分支合并到master,注意提示信息中說有沖突各聘。

合并dev分支

解決沖突后提交揣非,合并dev分支工作內(nèi)容就完成了。

同樣躲因,再次執(zhí)行git merge fix_bug1762命令早敬,把分支fix_bug1762合并到master上。

合并fix_bug1762分支

同樣提示信息標(biāo)識HelloGit.java文件在合并過程中出現(xiàn)了沖突大脉,需要人工介入搞监。

解決沖突后再次提交,合并fix_bug1762分支的工作也完成了镰矿。這樣琐驴,master上就接收了dev和fix_bug1762兩個(gè)分支的修改。

當(dāng)然秤标,我們通過版本庫管理的绝淡、需要解決沖突的,都是文本文件苍姜。如果你不嫌麻煩牢酵,使用vi、記事本等工具都可以解決沖突怖现。但是茁帽,在日常開發(fā)過程中,總有合適的合并屈嗤、解決沖突的工具供你使用潘拨,例如Eclipse中的EGit。

借助工具饶号,快速工作

刪除分支

是時(shí)候和分支說再見了铁追。
當(dāng)我們合并完分支的修改后,根據(jù)需要茫船,就可以刪除分支了琅束。

請注意branch和tag的區(qū)分,tag是階段性的工作算谈,需要保留的涩禀,如v5.25.RELEASE。而branch通常都是臨時(shí)性的工作然眼,完成修改艾船、合并后,一般需要丟棄。

執(zhí)行git branch -d dev命令屿岂,刪除dev分支践宴。
執(zhí)行git branch -d fix_bug1762命令,刪除fix_bug1762分支爷怀。

刪除分支

這些操作阻肩,都是在本地庫上進(jìn)行的。根據(jù)需要运授,你可隨時(shí)推送到遠(yuǎn)端庫烤惊,把你的工作成果分享給小伙伴們。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吁朦,一起剝皮案震驚了整個(gè)濱河市撕氧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喇完,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剥啤,死亡現(xiàn)場離奇詭異锦溪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)府怯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門刻诊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人牺丙,你說我怎么就攤上這事则涯。” “怎么了冲簿?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵粟判,是天一觀的道長。 經(jīng)常有香客問我峦剔,道長档礁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任吝沫,我火速辦了婚禮呻澜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘惨险。我一直安慰自己羹幸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布辫愉。 她就那樣靜靜地躺著栅受,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上窘疮,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天袋哼,我揣著相機(jī)與錄音,去河邊找鬼闸衫。 笑死涛贯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蔚出。 我是一名探鬼主播弟翘,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼骄酗!你這毒婦竟也來了稀余?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤趋翻,失蹤者是張志新(化名)和其女友劉穎睛琳,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體踏烙,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡师骗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了讨惩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辟癌。...
    茶點(diǎn)故事閱讀 38,654評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖荐捻,靈堂內(nèi)的尸體忽然破棺而出黍少,到底是詐尸還是另有隱情,我是刑警寧澤处面,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布厂置,位于F島的核電站,受9級特大地震影響鸳君,放射性物質(zhì)發(fā)生泄漏农渊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一或颊、第九天 我趴在偏房一處隱蔽的房頂上張望砸紊。 院中可真熱鬧,春花似錦囱挑、人聲如沸醉顽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽游添。三九已至系草,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間唆涝,已是汗流浹背找都。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留廊酣,地道東北人能耻。 一個(gè)月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像亡驰,于是被迫代替她去往敵國和親晓猛。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評論 2 349

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

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git凡辱,從https:/...
    落魂灬閱讀 12,654評論 4 54
  • 本系列教程來自廖雪峰的官方網(wǎng)站,現(xiàn)在搬運(yùn)過來,目的幫助自己和小白學(xué)習(xí)收藏!附贈:常用git命令清單 目錄 前言 創(chuàng)...
    Blizzard_liu閱讀 1,133評論 0 4
  • 今天是第三節(jié)音樂課戒职。 今天跟她打電話,又是沒話可說透乾。知道她在運(yùn)動減肥洪燥,所以問她是否收到成效,她好像并不喜歡我問她減...
    我家的貓和狗閱讀 175評論 0 0
  • R·閱讀原文片段《重要的事情說三點(diǎn)》P64 例如乳乌,在提出“希望明天開始請3天假”是請求后你又加上“我已經(jīng)好久沒回過...
    路子茵閱讀 181評論 1 1
  • 玉樹 "家鄉(xiāng)"多么熟悉的名詞蚓曼,而此時(shí)此刻過去在家鄉(xiāng)的畫面漸漸醒來,心潮澎湃钦扭。我...
    seven7NI閱讀 179評論 0 2