『現學現忘』Git分支 — 38、Git分支介紹

目錄

  • 1、Git分支簡介
  • 2、Git分支與SVN分支的區別
  • 3、工作中為什么要使用分支
  • 4、Git分支管理的好處
1、Git分支簡介幾乎所有的版本控制系統都以某種形式支持分支 。使用分支意味著,你可以把你的工作,從開發主線上分離開來 , 然后在不影響主線的同時繼續工作 。在很多版本控制系統中 , 這是一個略微低效的過程 , 常常需要完全創建一個源代碼目錄的副本 。對于大項目來說,這樣的過程會耗費很多時間 。
有人把 Git 的分支模型稱為它的“必殺技特性”,也正因為這一特性,使得 Git 從眾多版本控制系統中脫穎而出 。
為何 Git 的分支模型如此出眾呢? Git 處理分支的方式可謂是難以置信的輕量 , 創建新分支這一操作幾乎能在瞬間完成,并且在不同分支之間的切換操作也是一樣便捷 。與許多其它版本控制系統不同,Git 鼓勵在工作流程中頻繁地使用分支與合并,哪怕一天之內進行許多次 。
理解和精通這一特性,你便會意識到 Git 是如此的強大而又獨特,并且從此真正改變你的開發方式 。
2、Git分支與SVN分支的區別(1)SVN分支簡單說明
  1. SVN中的分支就是版本庫中的另外一個完整目錄,且這個目錄擁有完整的實際文件 。(就相當于把版本庫復制一份)
  2. 如果團隊工作成員想要開啟新的分支,那么團隊對中的每個人都會擁有和你一樣的分支 。(因為集中式版本管理系統)
  3. 在SVN中合并分支是非常麻煩和繁瑣的,經常會發生有些分支或文件被遺漏的情況 。
  4. 當你進行創建和切換分支比蝸牛還慢,簡直讓人無法忍受 。
(2)Git分支簡單說明
  1. Git中的分支就是創建一個指針指向某一個提交,就是我可以在Git中的任意一個提交點(commit point)創建分支 。
  2. Git中可以任意在自己的本地版本庫創建無限個分支 。我可以開一個分支 , 做我喜歡的事 。完全不需擔心妨礙其他工作成員,只要不合并到主倉庫中,沒有一個工作成員會被影響 。等到我不需要這個分支時,我只要把它從我的本地版本庫刪除即可,無痛無癢 。
  3. 在Git中很容易發現未被合并的分支,你能簡單而快捷的合并這些文件 。
  4. 你可以從同一個工作目錄下 , 快速的在幾個分支間切換 , 無論創建、切換和刪除分支,Git在1秒鐘之內就能完成!無論你的版本庫是1個文件還是1萬個文件 。
(3)總結
  • 創建分支:Git分支是指針指向某次提交,而 SVN 分支是拷貝的目錄 。這個特性使 Git 的分支切換非常迅速,且創建成本非常低 。
  • 而且Git有本地分支,SVN無本地分支 。
3、工作中為什么要使用分支分支在實際中有什么用呢?假設你準備開發一個新功能,但是需要兩周才能完成,第一周你寫了50%的代碼,如果立刻提交 , 由于代碼還沒寫完,不完整的代碼庫會導致別人不能干活了 。如果等代碼全部寫完再一次提交,又存在丟失每天進度的巨大風險 。
現在有了分支 , 就不用怕了 。你創建了一個屬于你自己的分支,別人看不到 , 還繼續在原來的分支上正常工作,而你在自己的分支上干活 , 想提交就提交,直到開發完畢后 , 再一次性合并到原來的分支上,這樣既安全,又不影響別人工作 。
在分支在開發過程中,如果某一個分支開發失敗,不會對其他分支有任何影響 。失敗的分支刪除重新開始即可 。
4、Git分支管理的好處
  1. 同時并行推進多個功能開發,提高開發效率 。
  2. 版本迭代更加清晰 。
  3. 利于代碼review的實現,從而使整個團隊開發更加規范,減少bug率 。
提示:分支對于團隊來說作用太大了 。
比如說一個項目現在是1.0版,那么開發團隊可能要同時進行1.1版和2.0版的開發,這樣代碼就會出現較大分歧 。這時候就需要用到分支了,不同的任務組在不同的分支上開發,互相之間不會影響 。
再比如說,需要向項目中添加一個新功能,一般的團隊都不會直接在主分支上修改,都會新建一個分支 , 在上面更改代碼 。這樣做的好處就是保證主線代碼的完整性和可用性,也就是說 , 主線上都是穩定的代碼,可以直接拿來發布的 。
參考:https://www.liaoxuefeng.com/wiki/896043488029600/896954848507552
?

推薦閱讀