日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Git初学札记(五)————Branch分支管理

發(fā)布時間:2025/3/12 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git初学札记(五)————Branch分支管理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引言

正如之前的博客中提到的,Git區(qū)別于Svn的一個最明顯的功能就是分支管理功能。

那么什么是分支?分支又能為我們的開發(fā)帶來什么翻天覆地的變化呢?(為了使博客的內(nèi)容更具權(quán)威性和專業(yè)性,以下部分內(nèi)容摘自官方文檔《Git - 分支簡介》)。

什么是分支

分支,顧名思義,從主干分離的枝干。使用分支意味著你可以把你的工作從開發(fā)主線上分離開來,以免影響開發(fā)主線。

分支并不是Git特有的功能特性,但是相比于其他的版本控制系統(tǒng),Git處理分支的方式可謂是難以置信的輕量,創(chuàng)建新分支這一操作幾乎能在瞬間完成,并且在不同分支之間的切換操作也是一樣便捷。與許多其他版本控制系統(tǒng)不同,Git鼓勵在工作流程中頻繁地使用分支與合并(branch 和 merge)。

理解和精通這一特性,我們便會意識到Git是如此的強(qiáng)大而又獨(dú)特,并且從此真正改變我們的開發(fā)方式。

創(chuàng)建分支

創(chuàng)建分支的命令是git branch :

$ git branch testing

根據(jù)Git的工作原理(在此不做討論,可以參見《起步 - Git基礎(chǔ)》),上面這行命令會在當(dāng)前所在的提交對象上創(chuàng)建一個指針。


此時,兩個指向相同提交歷史的分支,而Git又是如何知道當(dāng)前在哪一個分支上呢?其實(shí),Git中還存在一個名為HEAD的特殊指針。在Git中,HEAD指向當(dāng)前所在的本地分支(將HEAD想象為當(dāng)前分支的別名)。$ git branch命令僅僅會創(chuàng)建一個新分支,并不會自動切換到新分支中去。


可以使用$ git log 命令查看各個分支當(dāng)前所指對象。

$ git log --oneline --decorate f30ab (HEAD, master, testing) add feature #32 - ability to add new 34ac2 fixed bug #1328 - stack overflow under certain conditions 98ca9 initial commit of my project

可以看到,當(dāng)前master和testing分支都指向校驗和以 f30ab 開頭的提交對象。

切換分支

更換到一個已經(jīng)存在的分支,需要使用$ git checkout 命令。

$ git checkout testing

可以再次進(jìn)行開發(fā),并提交:

$ vim test.rb $ git commit -a -m 'made a change'

執(zhí)行完提交后,HEAD分支就會隨著提交操作自動向前移動,如上圖所示,testing 分支向前移動了,但是master分支卻沒有,它仍然指向運(yùn)行 git checkout 時所指向的對象。

我們再次切換回 master 分支上:

$ git checkout master

checkout 時HEAD隨之移動,這條命令完成了兩件事:第一是將HEAD指向 master 分支,第二是將工作目錄恢復(fù)成master 分支所指向的快照內(nèi)容。也就是說,你現(xiàn)在做修改的話,項目將始于一個較舊的版本。本質(zhì)上來講,這就是忽略 testing 分支所做的修改,以便向另一個方向進(jìn)行開發(fā)。

此時,如果我們不進(jìn)行分支合并(merge操作),而是朝著另一個方向進(jìn)行了修改,那么我們就會出現(xiàn)如下圖所示的分支結(jié)構(gòu):


可以看到,項目的提交歷史已經(jīng)產(chǎn)生了分叉。因為剛才我們創(chuàng)建了一個新分支,并切換過去進(jìn)行了一些工作,隨后又切換回 master 分支進(jìn)行了另外一些工作,上述兩次改動針對的是不同的分支:你可以在不同分支間不斷地來回切換和工作,并在時機(jī)成熟時將他們合并起來。

項目分叉歷史

使用 $ git log命令查看分叉歷史。它會輸出你的提交歷史、各個分支的指向以及項目的分支分叉情況:

$ git log --oneline --decorate --graph --all * c2b9e (HEAD, master) made other changes | * 87ab2 (testing) made a change |/ * f30ab add feature #32 - ability to add new formats to the * 34ac2 fixed bug #1328 - stack overflow under certain conditions * 98ca9 initial commit of my project

Git的分支實(shí)質(zhì)上僅包含所指對象校驗和(長度為40的SHA-1 值字符串)的文件,所以它的創(chuàng)建和銷毀都異常高效。因為創(chuàng)建一個新分支就相當(dāng)于往一個文件中寫入1個換行符和40個字符,因此十分迅速。

綜上,就是Git的分支管理相關(guān)的概念和模型,如有疑問歡迎文末留言。

參考:

《Git - 分支簡介》


創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的Git初学札记(五)————Branch分支管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产毛片在线看 | 国产成人+综合亚洲+天堂 | 免费在线成人网 | 亚洲精品免费电影 | 色呦呦免费观看 | 香蕉蜜桃视频 | 91麻豆蜜桃一区二区三区 | 黄色免费看视频 | 天天干天天操天天干 | 男人天堂亚洲天堂 | 久久99精品国产麻豆婷婷洗澡 | 久久久久亚洲AV成人无码国产 | 新疆毛片| 99久久人妻精品免费二区 | 热热av| 国产高清精品在线 | 熟妇大屁股一区二区三区视频 | 偷拍亚洲视频 | 韩日中文字幕 | 韩国一区二区三区视频 | 久久羞羞 | 天天想你在线观看完整版电影免费 | 手机看片福利在线 | 午夜污污 | 国产精品亲子伦对白 | 色哟哟日韩精品 | 美女国产一区 | 一女三黑人理论片在线 | 福利电影一区二区 | 精品久久久久久无码中文野结衣 | 国产男女猛烈无遮挡a片漫画 | 亚洲午夜伦理 | 亚洲欧洲精品一区二区三区 | 国产丝袜自拍 | 亚洲欧洲精品一区二区三区 | 黄网站在线免费 | 国产盗摄精品一区二区酒店 | 午夜一区不卡 | 四虎影院永久地址 | 亚洲欧美国产一区二区 | free国产hd露脸性开放 | 玖玖视频网 | 国产区久久 | 亚洲永久精品视频 | 亚洲欧洲在线观看 | 中文字幕乱码一区二区三区 | 在线观看欧美一区二区三区 | 久久高清无码电影 | 26uuu成人网 国产精品久久久久久久久久直播 | 九九黄色| 处女朱莉| av永久免费观看 | 午夜免费福利在线观看 | 欧美精品久久久久久 | 涩涩视频软件 | 色婷婷一区二区 | 丝袜毛片 | 国产乱了高清露脸对白 | av影片在线看 | 大乳护士喂奶hd | 亚洲涩色 | 毛片无码免费无码播放 | 国产色中色 | 亚洲午码 | 五月综合在线 | 成人av电影天堂 | 欧美日韩极品 | 精品一级| 超碰av在线免费观看 | 国语对白久久 | 熟女人妻一区二区三区免费看 | 强伦轩人妻一区二区电影 | 亚洲一区二区免费视频 | 一级片免费网站 | 亚洲国产精品成人综合在线 | 久久精品国产亚洲AV无码麻豆 | 日韩在线视频一区二区三区 | 国产成人免费片在线观看 | 日本三级在线 | 日本亚洲精品 | 久久成人免费视频 | 日日操影院 | 人妖天堂狠狠ts人妖天堂狠狠 | 香蕉视频1024| 九九九九精品 | 天天狠狠 | 国产精品久久91 | 国产精品乱码一区 | 爱福利视频广场 | av观看网 | www.黄色免费 | 91猎奇在线观看 | 18无码粉嫩小泬无套在线观看 | 成人av动漫在线 | 一本毛片| 青青操视频在线观看 | 吃奶摸下的激烈视频 | 欧美 日韩 中文 | 亚洲做受高潮 |