git分支管理

本地分支管理

創(chuàng)建和切換分支

創(chuàng)建分支

在本地終端運(yùn)行?git branch『分支名稱』?新建一個(gè)分支,如新建一個(gè)名為『learn-branch』的分支命令如下:

python

$ git branch learn-branch

切換分支

創(chuàng)建完分之后使用git branch命令查看分支:

python

$ git branch

* master

? learn-branch

可以看到『 master 』分支上有一個(gè)『*』赶么,說(shuō)明當(dāng)前是處在『 master 』分支上协怒,也就是說(shuō)創(chuàng)建完分支后需要我們手動(dòng)切換到『learn-branch』秆乳,使用git checkout 『分支名稱』命令:

python

$ git checkout learn-branch

Switched to branch 'learn-branch'

再使用git branch命令查看姑廉,會(huì)發(fā)現(xiàn)已經(jīng)切換到『learn-branch』分支:

python

$ git branch

* learn-branch

? master

創(chuàng)建和切換分支兩條命令可以合起來(lái),使用git checkout -b『分支名稱』命令可以創(chuàng)建一個(gè)分支并切換到此分支上蜗字。

合并分支

快進(jìn)模式合并

快進(jìn)式合并分支汤徽,也叫『Fast Foreword』娩缰,簡(jiǎn)單的理解就是當(dāng)要合并的分之和目標(biāo)分支之間沒(méi)有沖突,只是多做了一些修改時(shí)就會(huì)采取『Fast Foreword』模式谒府。

例如漆羔,我們切換到新建的『learn-branch』分支上,對(duì)『learn-git.txt 』文件加一行文字:

I am learning to use git.

然后提交此文件:

$git add learn-branch.txt

$git commit -m "edit learn-git.txt"

[learn-git fce6c4e] branch test

? 1 files changed, 1 insertions(+)

接著使用$ git checkout master命令切換回『 master 』分支狱掂,再查看『learn-git.txt 』文件演痒,發(fā)現(xiàn)剛才添加的內(nèi)容并不存在!因?yàn)槟莻€(gè)提交是在『learn-branch』分支上趋惨,而『 master 』分支此刻的提交點(diǎn)并沒(méi)有變鸟顺。

現(xiàn)在,我們把『learn-branch』分支的內(nèi)容合并到『 master 』分支上:

$ git merge learn-branch

Updating ca62ea0..fce6c4e

Fast-forward

? learn-branch.txt | 1 +

? 1 file changed, 1 insertion(+)

git merge命令用于合并指定分支到當(dāng)前分支,示例中是把指定分支『learn-branch』合并到『 master 』分支上讯嫂。

合并完成后會(huì)發(fā)現(xiàn)『 master 』分支上的『learn-git.txt 』文件內(nèi)容和在『learn-branch』分支上編輯后的內(nèi)容完全一樣蹦锋。此時(shí)如果想刪除『learn-branch』分支,可以使用命令$ git branch -d 『分支名稱』欧芽。

普通模式合并

當(dāng)要合并的分之和目標(biāo)分支之間存在沖突莉掂,就無(wú)法使用快進(jìn)合并模式,需要先手動(dòng)解決沖突千扔,再提交憎妙。

例如,我們先切換到『learn-branch』分支曲楚,在『learn-git.txt 』文件中寫(xiě)入下面文字并提交

I am on "learn-branch" branch.

然后切換到『 master 』分支厘唾,在『learn-git.txt 』文件中寫(xiě)入下面文字并提交

I am on "master" branch.

接著輸入git merge learn-branch命令:

$ git merge learn-branch

? Auto-merging learn-branch.txt

? CONFLICT (content): Merge conflict in learn-git.txt

? Automatic merge failed; fix conflicts and then commit the result.

Git 返回結(jié)果提醒我們『learn-git.txt 』文件存在沖突,需要我們手動(dòng)解決沖突龙誊。運(yùn)行?git status?命令抚垃,也可以看到出現(xiàn)沖突狀況:

$ git status

On branch master

You have unmerged paths.

? (fix conflicts and run "git commit")

Unmerged paths:

? (use "git add ..." to mark resolution)

? ? ? both modified:? ? ? learn-git.txt

no changes added to commit (use "git add" and/or "git commit -a")

現(xiàn)在我們打開(kāi)『learn-git.txt 』,會(huì)發(fā)現(xiàn) Git 加入了沖突解決標(biāo)記:

? <<<<<<< HEAD

? I am on master branch

? =======

? I am on learn-branch branch

? >>>>>>> learn-branch

可以看到 ======= 隔開(kāi)的上半部分趟大,是 HEAD(即 master 分支鹤树,在運(yùn)行 merge 命令時(shí)的工作分支)中的內(nèi)容,下半部分是在 learn-branch 分支中的內(nèi)容逊朽。解決沖突的辦法無(wú)非是二者選其一或者人工親自整合到一起罕伯。把上述內(nèi)容修改為這樣:

I am on master branch

接下來(lái)運(yùn)行?git add?來(lái)告訴 Git 沖突已經(jīng)解決,并運(yùn)行?git commit?來(lái)完成合并:

$git add learn-git.txt

$git commit -m "conflict resolved"

[master cadd265] conflict resloved

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末惋耙,一起剝皮案震驚了整個(gè)濱河市捣炬,隨后出現(xiàn)的幾起案子熊昌,更是在濱河造成了極大的恐慌绽榛,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件婿屹,死亡現(xiàn)場(chǎng)離奇詭異灭美,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)昂利,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)届腐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蜂奸,你說(shuō)我怎么就攤上這事犁苏。” “怎么了扩所?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵围详,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)助赞,這世上最難降的妖魔是什么买羞? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮雹食,結(jié)果婚禮上畜普,老公的妹妹穿的比我還像新娘。我一直安慰自己群叶,他們只是感情好吃挑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著盖呼,像睡著了一般儒鹿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上几晤,一...
    開(kāi)封第一講書(shū)人閱讀 51,578評(píng)論 1 305
  • 那天约炎,我揣著相機(jī)與錄音,去河邊找鬼蟹瘾。 笑死圾浅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的憾朴。 我是一名探鬼主播狸捕,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼众雷!你這毒婦竟也來(lái)了灸拍?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤砾省,失蹤者是張志新(化名)和其女友劉穎鸡岗,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體编兄,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡轩性,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了狠鸳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揣苏。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖件舵,靈堂內(nèi)的尸體忽然破棺而出卸察,到底是詐尸還是另有隱情,我是刑警寧澤铅祸,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布坑质,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏洪乍。R本人自食惡果不足惜眯杏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望壳澳。 院中可真熱鬧岂贩,春花似錦、人聲如沸巷波。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)抹镊。三九已至锉屈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間垮耳,已是汗流浹背颈渊。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留终佛,地道東北人俊嗽。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像铃彰,于是被迫代替她去往敵國(guó)和親绍豁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

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

  • 1. 創(chuàng)建與合并分支 在Git里每次提交會(huì)被串成一條時(shí)間線,這條時(shí)間線就是一個(gè)分支.而HEAD是指向當(dāng)前分支,當(dāng)前...
    程序員七哥閱讀 544評(píng)論 0 5
  • 沖突合并 創(chuàng)建分支feature1分支,在feature1中修改readme文件邪铲,然后在分支中添加并提交芬位, $gi...
    奮斗中的Kevin閱讀 642評(píng)論 0 1
  • 前言 這篇文章是我16年4月寫(xiě)的,當(dāng)時(shí)發(fā)布在CSDN上霜浴。被Git知識(shí)庫(kù)收錄晶衷。鏈接:http://blog.csdn...
    aroundme閱讀 2,215評(píng)論 1 14
  • 分支在實(shí)際中有什么用呢蓝纲?假設(shè)你準(zhǔn)備開(kāi)發(fā)一個(gè)新功能阴孟,但是需要兩周才能完成,第一周你寫(xiě)了50%的代碼税迷,如果立刻提交永丝,由...
    八寶君閱讀 308評(píng)論 0 0
  • 1. 納什均衡:想要達(dá)到共贏,我們就要付出代價(jià)箭养,想如何才能抓住員工的心慕嚷,多做銷售,月底工資高才是最終的目的! 2....
    Ding欣欣閱讀 94評(píng)論 0 0