如果想實現多人協作、劃出bug區、feature區等功能,就需要分支功能。(確實很強大的地方)
每次commit
時,git都把它們串成一條時間線,這條時間線就是乙個分支。截止到目前,只有一條時間線,在git裡,這個分支叫主分支,即master
分支。而此時head
也指向master
。
每次提交,master
分支都會向前移動一步,這樣,隨著你不斷提交,master
分支的線也越來越長。
當我們建立新的分支dev
的時候,將head
指向dev
,這時候就在dev
分支上了。
建立分支:git branch 分支名字
進入分支:git checkout 分支名字
建立並且進入分支:git checkout -b 分支名字
如果想檢視當前在哪個分支:git branch
如果在dev
分支下提交一張**,此時,工作區是有**的(在資料夾檢視)。然後切換到master
分支,會發現本地的工作區被重新整理了一下,然後不見了。在命令列ls
檢視檔案列表也沒有(如截圖所示)。此時,需要將dev
分支合併到master
分支。
合併分支:git merge 分支名字
。將分支合併到當前分支。這時可以發現,**出現了。(附截圖)
注意到上面的fast-forward資訊,git告訴我們,這次合併是「快進模式」,也就是直接把master
指向dev
的當前提交,所以合併速度非常快。當然,也不是每次合併都能fast-forward。
如果加上--no-ff
引數就是普通合併模式。這樣就保留了歷史資訊。
如果兩個或多個分支對同一檔案作出不同的操作,合併的時候就會有衝突。
如下面截圖先在dev
中修改txt,再在master
中作出不同的修改。
此時,git merge dev
就會報錯,提醒有衝突,需要手動解決
當然,也可以通過git status
檢視,會發現both modified
的錯誤提示。或者cat temp.txt
,不同分支的修改的不同之處被標註了出來。
在當前分支修改檔案內容並且再次提交修改,即可以解決衝突。
一條命令:git branch -d 分支名字
即可刪除
如果分支還未合併到當前分支:git branch -d 分支名字
強制刪除。
在實際開發中,我們應該按照幾個基本原則進行分支管理:
首先,master
分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活;
那在哪幹活呢?幹活都在dev
分支上,也就是說,dev
分支是不穩定的,到某個時候,比如1.0版本發布時,再把dev
分支合併到master
上,在master
分支發布1.0版本;
你和你的小夥伴們每個人都在dev分支上幹活,每個人都有自己的分支,時不時地往dev
分支上合併就可以了
最後發布時,再將dev
合併到master
csdn位址 :
也可以致信進行交流 : [email protected]
Git 分支的建立 合併 管理和刪除
如果想實現多人協作 劃出bug區 feature區等功能,就需要分支功能。確實很強大的地方 每次commit時,git都把它們串成一條時間線,這條時間線就是乙個分支。截止到目前,只有一條時間線,在git裡,這個分支叫主分支,即master分支。而此時head也指向master。每次提交,master...
git 分支管理(分支的建立 使用 合併 刪除)
1 分支 1 概念 每提交一次 就會有乙個記錄,git把這些提交 的時間點串聯起來,就把他們變成了一條時間線,這條時間線就是乙個分支。一般情況下,只有一條時間線,這個分支叫作主分支,即master分支。head指標 指向當前的分支,預設指向master 嚴格來說是不指向提交的,而是指向master,...
git分支的建立,合併,刪除
一開始的時候,master分支是一條線,git用master指向最新的提交,再用head指向master,就能確定當前分支,以及當前分支的提交點。每次提交,master分支都會向前移動一步,這樣,隨著你不斷提交,master分支的線也越來越長。當我們建立新的分支,例如dev時,git新建了乙個指標叫...