1. 程式人生 > >git——分支管理

git——分支管理

簡介

在版本回退中,程式碼倉庫被串成了一條時間線,這條線被稱作為主分支(master)。我們也可以建立其他分支,以實現同步開發。git分支通過指標的形式管理,所以建立、合併、刪除等都很快。通過分支管理,我們可以更高效地完成開發工作。

分支管理的相關命令

  1. 檢視分支:git branch
  2. 建立分支:git branch [name]
  3. 切換分支:git checkout [name]
  4. 建立+切換分支:git checkout -b [name]
  5. 合併某分支到當前分支:git merge [name]
  6. 刪除分支:git branch -d [name]

解決衝突

多個分支可以並行開發,提高效率,但是也會帶來衝突的問題。當兩個分支中的同名檔案都有改動時且改動不一致時,進行合併就會報衝突,需要手動將衝突檔案內容進行調整來解決衝突。

分支管理策略

在實際開發中,master分支應該是非常穩定的,所以僅僅用來發布新版本。一般會根據master建立一個dev分支,開發人員根據dev分支上進行開發,開發完畢後合併到master上進行釋出。如下圖所示:
多人合作分支圖

Bug分支與feature分支

bug分支:當需要修復某個分支的bug時,我們會基於該分支建立一個bug分支,修復完畢後再合併。當需要解決bug時我們恰好正在開發其它功能,可以使用git stash暫存當前工作,再建立bug分支。修復完bug之後,可以使用git stash pop命令進行恢復,繼續開發工作。
feature分支:同理,當我們想要開發一個帶有實驗性質的新功能時,也會先建一個feature分支,然後將其合併至dev分支之上。

多人協作

當我們從遠端倉庫克隆時,git自動將本地master分支和遠端master分支對應了起來,並且將遠端倉庫名設定為了orign。多人協作時,會涉及到對不同分支的操作。
一般的多人協作過程如下:

  • 首先,可以試圖用git push origin branch-name推送自己的修改;
  • 如果推送失敗,則因為遠端分支比你的本地更新,需要先用git pull試圖合併;
  • 如果合併有衝突,則解決衝突,並在本地提交;
  • 沒有衝突或者解決掉衝突後,再用git push origin branch-name推送;
  • 如果git pull提示“no tracking information”,則說明本地分支和遠端分支的連結關係沒有建立,用命令git branch –set-upstream branch-name origin/branch-name。