目錄
- 創建分支
- 查看分支
- 切換分支
- 洗掉分支
- 分支合并
- 探尋分支本質
創建分支
當我們使用git init projectName命令的時候,Git就會默認幫我們創建一個分支,名字叫做master,

我們還可以創建其它分支,使用git branch new_branch(新分支名稱)

如果我們想在創建新分支的同時,并切換到新建的分支,需要加上額外的引數-b,使用git checkout -b new_branch(新分支名稱),它等同于下面的兩條命令
git branch new_branch
git checkout new_branch

查看分支
可以通過如下命令查看當前所處分支
git branch

切換分支
當我們從一個分支切換到另一個分支,可以使用如下命令
git checkout another_branch(另一個分支)
例如,從master切換到dev分支

洗掉分支
洗掉分支命令
git branch -d de_branch(待洗掉分支名)
git branch -D de_branch(待洗掉分支名)
-d和-D有啥區別呢,如果你想洗掉的分支的內容已經合并到主分支了,那么使用-d即可,如果你在新分支上寫了東西,但是并沒有合并到主分支,你還想把它洗掉,你就得使用-D,Git這樣做是為了保險起見,怕你忘了合并就洗掉了,但是如果你確實是想還沒合并就洗掉了就可以使用-D
下圖中,我再bug567分支做了一次提交操作,但是并沒有合并到其它分支,在使用git branch -d bug567時,提示dev分支并沒有合并,如果確實想洗掉它,可以使用git branch -D bug567

注意,我們不能洗掉我們當前所處的分支,什么意思呢?如果我們當前處于dev分支,我們通過git branch -d dev是無法洗掉dev分支的,需要先切換到其它分支,再去洗掉這個dev分支,因為如果你當前處于dev分支,你還把它給洗掉了,那么你當前該處于什么分支呢?這是不合理的,所以Git也不允許

分支合并
當我們在一個分支上寫好代碼后需要把代碼合并到主分支,這里需要用到git merge命令,下圖給出了示例,dev分支里index.txt有兩行文字,而master分支index.txt里只有一行,這里吧dev分支的內容和master分支的內容合并,先切換到master分支,然后執行如下面命令
git merge dev

git branch -v
顯示當前所處分支,最新的一條提交訊息

探尋分支本質
分支
下圖是一個分支上由commit id組成的記錄線



HEAD保存在哪里呢?



上面圖中的這種也叫做fast-forward,快進,這是在沒有沖突的情況下,從某一個提交直接跳轉到最新的一個提交上,
如果有沖突的話,我們需要在主分支把沖突解決,然后再commit,此時如果我們切換到dev分支,再執行git merge master時,也不會沖突了,而是fast-forward,此時我們再查看dev分支最新的commit id會發現和剛剛在主分支最新的commit id一樣,dev分支只是采用了fast-forward方式更新了commit id,道理很簡單,因為在master我們解決沖突后做了提交, master已經往前走了一步了,然后我們把往前走了一步的master再往回合并的話,此時實際上dev分支已經落后于master,git會認為這是一個快進,所以直接有指向dev的指標直接指向下一個master所指向的最新commit,直接就跳過去了,
下圖這種方式,即使沒有沖突,也會產生一個新的commmit id



轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/214406.html
標籤:其他
上一篇:gitbook 入門教程之使用 gitbook-editor 編輯器開發電子書
下一篇:軟體工程師的核心競爭力
