www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 公眾號精選 > 架構(gòu)師社區(qū)
[導讀]上一篇原創(chuàng)寫了圖解Git的第一篇,個人感覺還是可以,比較基礎的那種,有興趣的可以看一看。這一篇我們繼續(xù)圖解Git,上一篇基本就是基礎,這一篇算是進階。

上一篇原創(chuàng)寫了圖解Git的第一篇,個人感覺還是可以,比較基礎的那種,有興趣的可以看一看[],這一篇我們繼續(xù)圖解Git,上一篇基本就是基礎,這一篇算是進階。

分支管理

Git中比較最重要的一點就是分支的概念,有了分支就有了合并和衍合的操作,「合并」「衍合」能夠「有效的對代碼版本的管理」。

Git的初始化中有一條默認的主分支叫做master,每一次的提交都會串成一條時間線,這就是一條分支,當前分支由HEAD指針指向:

深入淺出圖解Git,入門到精通(二)

當每次發(fā)生代碼提交的時候,當前指向就會向前形成一個新的版本,假如再創(chuàng)建一個新的分支bran,并且當前的提交指向新的分支,這樣新的分支隨著時間的推移就會形成許多版本:

深入淺出圖解Git,入門到精通(二)

當新分支開發(fā)完后,提交倉庫,并合并到主干master,最后刪除bran分支,這樣就完成了一次個人的開發(fā):

深入淺出圖解Git,入門到精通(二)

所以,假如主分支上只建立一條分支的話,分支的合并是非??焖俚?,只需要移動master分支到當前提交,然后將HEAD指針指向master,最后刪除bran分支就完成了。

但是,事實上并不是這樣的,在一個多人協(xié)作的開發(fā)團隊中,往往每個人都會建立自己的分支,有自己的提交,最后合并到主干,當自己提交的時候,遠程倉庫代碼就會存在自己本地倉庫并未有的代碼,這樣就會導致push失敗。

例如:程序員Tom和Jerry同時遷出代碼,他們的初始代碼分支都如下圖所示:

深入淺出圖解Git,入門到精通(二)

當Tom開發(fā)自己的業(yè)務模塊,提交代碼并且合并到主干后,遠程主干分支如下圖所示:

深入淺出圖解Git,入門到精通(二)

「遠程倉庫master已經(jīng)不再指向gs234,而是新生成了一個版本dfd453,作為當前指向的版本」。

與此同時,Jerry的本地也同時開發(fā)完自己的模塊后,分支如下圖所示:

深入淺出圖解Git,入門到精通(二)

在Jerry的本地環(huán)境中,他的「本地倉庫master還是指向gs234」,Jerry在自己新建立的一個分支bran中進行開發(fā),開發(fā)完后合并分支,最后master就會指向ed489

當Jerry再次提交代碼,Git就會檢查遠程倉庫與Jerry的本地倉庫,進行對比后,發(fā)現(xiàn)遠程倉庫存在Jerry的本地倉庫不存在的代碼,就需要Jerry將遠程倉庫執(zhí)行git pull后,自行解決沖突。

上面說了分支基本原理,已經(jīng)管理分支出現(xiàn)的問題,下面我們就來一步一步的深入操作分支的基本命令。

新建分支

Git新建一個分支的命令為:git branch <分支名字>,新建立后分之后,切換分支的命令為:git checkout <分支名字>

新建分支的實質(zhì):「就是新建立一個引用,指向當前提交,master就好比一個引用」;切換分支的實質(zhì):就是將HEAD由指向原來的引用,重新指向要切換的分支的引用上:

深入淺出圖解Git,入門到精通(二)

當然上面創(chuàng)建分支并且合并分支的兩條命令可以合并成一條命令:git checkout -b <分支名字>

當切換分之后,每次commit提交代碼時HEAD指針就會跟隨著新的bran分支移動,形成bran分支上的每一個版本:

深入淺出圖解Git,入門到精通(二)

假如,在新的bran分支上開發(fā)到某一個版本,再次切換回master分支進行開發(fā)就會形成分叉:

深入淺出圖解Git,入門到精通(二)

查看分支

當分支創(chuàng)建好了,你可以通過:git branch,來查看自己本地的分支情況:

深入淺出圖解Git,入門到精通(二)分支前面帶有*號的表示當前的分支,查看分之后,你就可以很清楚的知道自己要checkout哪條分支了。

合并分支

開發(fā)自己模塊后,后面就會在自己本地進行合并分支,合并分支的命令:git merge <分支名字>,它表示「合并指定的分支到當前分支」,比如:當前分支為master,執(zhí)行:git merge bran,表示合并bran分支到當前master分支上。

分支合并也會有失敗的情況,當你的兩條分支都修改的相同的文件,這時候Git就無法判斷你要保留哪一個修改,就會出現(xiàn)merge沖突。

例如:我先在master分支修改README.md文件,然后提交本地倉庫:深入淺出圖解Git,入門到精通(二)然后切換回分支dev,再次修改README.md文件,再次提交

深入淺出圖解Git,入門到精通(二)

最后進行合并分支,此時在你兩次修改的README.md文件中就會出現(xiàn)兩次修改的沖突代碼:

深入淺出圖解Git,入門到精通(二)

因為你兩次修改同一文件的操作,合并后Git并不知道你要保留哪一次的操作,所以它就會將這個決定交給你自己決定,它只告訴你文件中哪里的代碼沖突了,具體怎么改就由你自己去弄。

深入淺出圖解Git,入門到精通(二)

刪除分支

最后是刪除自己新建的分支,通過:git branch -d <分支名字>,進行刪除分支,假如分支刪除不了,可以通過:git branch -D <分支名字>,強制刪除分支:

深入淺出圖解Git,入門到精通(二)Git中刪除分支的實質(zhì):dev只是一個分支的引用,所以刪除分支也就是刪除這個引用,并不會刪除任何conmit,所以刪除操作也是非常高效的。

假如一條分支commit的引用被刪除,那么這條分支的就沒有任何引用指向,這樣就會找不到這條分支,最后就會被Git回收機制回收。

查看遠程

在多人協(xié)作的團隊下,你可能要隨時查看遠程倉庫的情況,可以通過:git remote,進行查看,加上-v參數(shù)可以查看遠程倉庫的詳細情況。

git?remote
git?remote?-v

推送分支

深入淺出圖解Git,入門到精通(二)

分支的推送到遠程上一節(jié)已經(jīng)提過,使用git push命令就可以進行分支的推送,命令后面加上分支的命令,表示具體推送哪條分支:

git?push?origin?master?//?將本地master分支推送到遠程庫

拉取分支

分支的拉取使用git pull命令,這條命令相當于以下兩條命令:

git?fetch
git?merge

但是一般實際工作中,都可能會直接使用git pull命令:

深入淺出圖解Git,入門到精通(二)

分支管理策略

在合并分支的時候,Git會以快速合并的模式進行合并(Fast forward),但是這種模式刪除分支后,會丟失分支的信息。

Git中還可以以「普通模式」進行合并,在原來git merge命令后面加上--no-ff參數(shù)即可,合并的命令如下:

$?git?merge?--no-ff?-m?"message"?dev

臨時存取工作區(qū)的改動

在開發(fā)中,若是某一時刻你想把當前的改動臨時進行存放起來,可以使用git stash命令,它表示將改動的文件存儲到一個獨立的存儲區(qū)域,并不會被提交,當再次需要的時候可以隨時取出來。

這里要注意的是:「git stash的是改動的文件,也就是被Git追蹤的文件,新添加的文件并沒有被Git追蹤,所以git stash并不會stash」

深入淺出圖解Git,入門到精通(二)

git stash命令也可以加上save命令后面再加上備注信息,方便查看:

git?stash?save?"備注信息"

git stash成功后「本地的工作目錄的代碼會和本地倉庫一樣」,git stash后可以通過git stash list命令查看之前stash的歷史記錄,當再次需要將改動的文件取出來時候,可以通過以下命令:

git?stash?pop

git stash pop表示「彈出第一個被stash的記錄,并且該stash會從歷史記錄中刪除」;也可以使用git stash apply命令「彈出stash,但是這條命令stash仍然會保存在stash歷史記錄中」,你也可以通過:git stash drop命令來刪除。

深入淺出圖解Git,入門到精通(二)

這一篇就只講解了Git的分支原理以及Git的臨時存取操作,限于篇幅,我們今天就到這里,我們下一期繼續(xù)圖解Git操作,我們下一期再見。

特別推薦一個分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒關注的小伙伴,可以長按關注一下:

深入淺出圖解Git,入門到精通(二)

深入淺出圖解Git,入門到精通(二)

深入淺出圖解Git,入門到精通(二)

長按訂閱更多精彩▼

深入淺出圖解Git,入門到精通(二)

如有收獲,點個在看,誠摯感謝

免責聲明:本文內(nèi)容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉