git創(chuàng)建與合并分支

版本回退 里拷邢,你已經(jīng)知道袱院,每次提交,Git都把它們串成一條時間線瞭稼,這條時間線就是一個分支忽洛。截止到目前,只有一條時間線环肘,在Git里欲虚,這個分支叫主分支,即master分支悔雹。HEAD嚴(yán)格來說不是指向提交复哆,而是指向master欣喧,master才是指向提交的,所以寂恬,HEAD指向的就是當(dāng)前分支续誉。一開始的時候,master分支是一條線初肉,Git用master指向最新的提交酷鸦,再用HEAD指向master,就能確定當(dāng)前分支牙咏,以及當(dāng)前分支的提交點(diǎn):

image.png

每次提交臼隔,master分支都會向前移動一步,這樣妄壶,隨著你不斷提交摔握,master分支的線也越來越長:
當(dāng)我們創(chuàng)建新的分支,例如dev時丁寄,Git新建了一個指針叫dev氨淌,指向master相同的提交,再把HEAD指向dev伊磺,就表示當(dāng)前分支在dev上:
image.png

你看盛正,Git創(chuàng)建一個分支很快,因為除了增加一個dev指針屑埋,改改HEAD的指向豪筝,工作區(qū)的文件都沒有任何變化!
不過摘能,從現(xiàn)在開始续崖,對工作區(qū)的修改和提交就是針對dev分支了,比如新提交一次后团搞,dev指針往前移動一步严望,而master指針不變:
image.png

假如我們在dev上的工作完成了,就可以把dev合并到master上逻恐。Git怎么合并呢像吻?最簡單的方法,就是直接把master指向dev的當(dāng)前提交梢莽,就完成了合并:
image.png

所以Git合并分支也很快!就改改指針奸披,工作區(qū)內(nèi)容也不變昏名!
合并完分支后,甚至可以刪除dev分支阵面。刪除dev分支就是把dev指針給刪掉轻局,刪掉后洪鸭,我們就剩下了一條master分支:
image.png

真是太神奇了,你看得出來有些提交是通過分支完成的嗎仑扑?
下面開始實(shí)戰(zhàn)览爵。
首先,我們創(chuàng)建dev分支镇饮,然后切換到dev分支:

$ git checkout -b devSwitched to a new branch 'dev'

git checkout命令加上-b參數(shù)表示創(chuàng)建并切換蜓竹,相當(dāng)于以下兩條命令:

$ git branch dev$ git checkout devSwitched to branch 'dev'

然后,用git branch命令查看當(dāng)前分支:

$ git branch
* dev
  master

git branch命令會列出所有分支储藐,當(dāng)前分支前面會標(biāo)一個*號俱济。
然后,我們就可以在dev分支上正常提交钙勃,比如對readme.txt做個修改蛛碌,加上一行:

Creating a new branch is quick.

然后提交:

$ git add readme.txt $ git commit -m "branch test"
[dev fec145a] branch test
 1 file changed, 1 insertion(+)

現(xiàn)在,dev分支的工作完成辖源,我們就可以切換回master分支:

$ git checkout masterSwitched to branch 'master'

切換回master分支后蔚携,再查看一個readme.txt文件,剛才添加的內(nèi)容不見了克饶!因為那個提交是在dev分支上酝蜒,而master分支此刻的提交點(diǎn)并沒有變:


image.png

現(xiàn)在,我們把dev分支的工作成果合并到master分支上:

$ git merge devUpdating d17efd8..fec145aFast-forward
 readme.txt |    1 +
 1 file changed, 1 insertion(+)

git merge命令用于合并指定分支到當(dāng)前分支彤路。合并后秕硝,再查看readme.txt的內(nèi)容,就可以看到洲尊,和dev分支的最新提交是完全一樣的远豺。
注意到上面的Fast-forward信息,Git告訴我們坞嘀,這次合并是“快進(jìn)模式”躯护,也就是直接把master指向dev的當(dāng)前提交,所以合并速度非忱錾快棺滞。
當(dāng)然,也不是每次合并都能Fast-forward矢渊,我們后面會講其他方式的合并继准。
合并完成后,就可以放心地刪除dev分支了:

$ git branch -d devDeleted branch dev (was fec145a).

刪除后矮男,查看branch移必,就只剩下master分支了:

$ git branch
* master

因為創(chuàng)建、合并和刪除分支非痴奔快崔泵,所以Git鼓勵你使用分支完成某個任務(wù)秒赤,合并后再刪掉分支,這和直接在master分支上工作效果是一樣的憎瘸,但過程更安全入篮。

小結(jié)

查看分支:

git branch

創(chuàng)建分支:

git branch <name>

切換分支:

git checkout <name>

創(chuàng)建+切換分支:

git checkout -b <name>

合并某分支到當(dāng)前分支:

git merge <name>

刪除分支:

git branch -d <name>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市幌甘,隨后出現(xiàn)的幾起案子潮售,更是在濱河造成了極大的恐慌,老刑警劉巖含潘,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饲做,死亡現(xiàn)場離奇詭異,居然都是意外死亡遏弱,警方通過查閱死者的電腦和手機(jī)盆均,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漱逸,“玉大人泪姨,你說我怎么就攤上這事∈问悖” “怎么了肮砾?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長袋坑。 經(jīng)常有香客問我仗处,道長,這世上最難降的妖魔是什么枣宫? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任婆誓,我火速辦了婚禮,結(jié)果婚禮上也颤,老公的妹妹穿的比我還像新娘洋幻。我一直安慰自己,他們只是感情好翅娶,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布文留。 她就那樣靜靜地躺著,像睡著了一般竭沫。 火紅的嫁衣襯著肌膚如雪燥翅。 梳的紋絲不亂的頭發(fā)上般又,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天严卖,我揣著相機(jī)與錄音,去河邊找鬼戏锹。 笑死,一個胖子當(dāng)著我的面吹牛拄氯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播它浅,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼译柏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了姐霍?” 一聲冷哼從身側(cè)響起鄙麦,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎镊折,沒想到半個月后胯府,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恨胚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年骂因,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赃泡。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡寒波,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出升熊,到底是詐尸還是另有隱情俄烁,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布级野,位于F島的核電站页屠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蓖柔。R本人自食惡果不足惜辰企,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望渊抽。 院中可真熱鬧蟆豫,春花似錦、人聲如沸懒闷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽愤估。三九已至帮辟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間玩焰,已是汗流浹背由驹。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蔓榄。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓并炮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親甥郑。 傳聞我的和親對象是個殘疾皇子逃魄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

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

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,649評論 4 54
  • Git常用語法 [TOC] Git簡介 描述 ? Git(讀音為/g?t/澜搅。)是一個開源的分布式版本控制系統(tǒng)伍俘,...
    君惜丶閱讀 3,497評論 0 13
  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來勉躺。這樣一來癌瘾,任何一處協(xié)同...
    __silhouette閱讀 15,855評論 5 147
  • 文/北辰 有人說做銷售很累妨退,不是人干的,但是從事銷售行業(yè)的蜕企,照樣人數(shù)幾百萬碧注! -他們累嗎?當(dāng)然累糖赔,但還是有人熬出頭...
    君子蘭NZj閱讀 283評論 0 0
  • 憧憬 我做了一個夢 藍(lán)色的故鄉(xiāng) 白色的家 火紅色的遠(yuǎn)方 紫色的你 黑色的我 我看見紫色...
    笈荼閱讀 146評論 0 1