git 分支管理

Git的分支管理是Git的神器。擁有了它就會使我麼管理代碼更加遊刃有餘。那麼什麼是Git的分支管理?爲何要使用Git的分支管理?Git分支管理怎麼用?
          在集中式版本控制中,衝突的合併是可怕的,是使人噁心的。因此不少版本控制軟件經過加鎖來拒絕多我的同時訪問一個文件;而有的版本管理軟件,則不是經過加鎖的方式,第一個提交的人會很順暢,可是若是第二我的提交,那麼面臨它的將是噁心的衝突解決。
        而在分佈式管理軟件中,衝突解決、合併、衍合,則是一種容易的事情,它是版本管理中的常態
          而合併、衍合的主體就是分支。
        分支其實就是指向某種代碼狀態的一個指針。而合併其實就是將兩種代碼狀態合併到另外一種代碼狀態中。
          在Git中,正確的使用方法中,無處不在使用分支。好比,提交實際上就是本地分支合併到遠程分支,更新實際上就是將遠程分支合併到本地分支,在開發過程當中,每加入一個功能或特性,都加入一個分支,當實驗成功後合併到主分支...
        爲何要使用分支管理?
          咱們來設想下面幾種狀況:一、咱們在基於一個穩定的版本在進行開發,忽然在穩定版本上有一個緊急的bug須要咱們解決。二、咱們在軟件中加入了一個小的特性,可是開發到一半的時候,發現開發組的另外一個的想法更有創意,因此咱們想廢棄本身的更改。三、本身想在軟件中同時加入多個特性,可是但願並行開發開發,而不是依次開發。
          若是採用單分支形式的話,以上可能也能夠實現,可是實現的複雜度可能就會加大。而應用多分支管理時狀況就變的簡單了。
          若是咱們開發新功能時是基於一個新的分支的話,若是穩定版本有一個緊急bug須要處理,那麼咱們就能夠切換到穩定版本的分支,而後修改bug,修改以後,咱們再次切換到原先的分支繼續工做,最後咱們將該分支合併到穩定分支便可。若是咱們想廢棄正在開發的某個特性,若是該特性在一個單獨的分支上,只須要簡單的刪除該分支便可。若是咱們想並行開發多個特性,咱們能夠建立多個分支,分別開發,而後將每一個分支都合併到穩定分支上便可。
          多分支管理,咱們能夠維護一個穩定的分支,而後某些特性或實驗性的開發能夠單獨做爲一個分支,這樣開發過程就不會影響到穩定的版本。並且Git中分支的建立和切換基本上沒有多少消耗。
        Git如何進行分支管理?
          一、建立分支
          建立分支很簡單:git branch <分支名>
          二、切換分支
          git checkout <分支名>
          該語句和上一個語句能夠和起來用一個語句表示:git checkout -b <分支名>
          三、分支合併
          好比,若是要將開發中的分支(develop) ,合併到穩定分支(master),
          首先切換的master分支:git checkout master。
          而後執行合併操做:git merge develop。
          若是有衝突,會提示你,調用git status查看衝突文件。
          解決衝突,而後調用git add或git rm將解決後的文件暫存。
          全部衝突解決後,git commit 提交更改。
          四、分支衍合
          分支衍合和分支合併的差異在於,分支衍合不會保留合併的日誌,不留痕跡,而 分支合併則會保留合併的日誌。
          要將開發中的分支(develop),衍合到穩定分支(master)。
          首先切換的master分支:git checkout master。
          而後執行衍和操做:git rebase develop。
          若是有衝突,會提示你,調用git status查看衝突文件。
          解決衝突,而後調用git add或git rm將解決後的文件暫存。
          全部衝突解決後,git rebase --continue 提交更改。
          五、刪除分支
          執行git branch -d <分支名>
          若是該分支沒有合併到主分支會報錯,能夠用如下命令強制刪除git branch -D <分支名>
相關文章
相關標籤/搜索