創建並切換分支
git checkout命令加上-b參數表示創建並切換分支,以下為創建並切換到dev分支:
相當於先通過 $ git branch dev 命令創建dev分支,然后 $ git checkout dev切換到dev分支。$ git branch 可查看所有分支,*表示當前分支:
此時我們可以在dev上提交修改,比如新加一個readmedev.txt文件,如果再切換到master,你會發現在dev分支下提交的文件不見了。
合並和刪除分支
git merge命令用於合並指定分支到當前分支,我們把dev分支的工作成果合並到master分支上:
合並后,我們會發現 master分支會多出readmedev.txt文件,和dev分支的最新提交是完全一樣的。上面的Fast-forward信息告訴我們,這次合並是“快進模式”,也就是直接把master指向dev的當前提交,所以合並速度非常快,合並完成后,就可以放心地刪除dev分支了:
但是fast forward合並看不出來曾經做過合並。合並分支時,加上--no-ff參數就可以用普通模式合並,合並后的歷史有分支,能看出來曾經做過合並,以下是加了參數后的結果:
因為本次合並要創建一個新的commit,所以加上-m參數,把commit描述寫進去。
合並后,我們用git log看看分支歷史:
總結一下,兩種合並模式結果如下:
因為創建、合並和刪除分支非常快,所以Git鼓勵你使用分支完成某個任務,合並后再刪掉分支,這和直接在master分支上工作效果是一樣的,但過程更安全。
如果要丟棄一個沒有被合並過的分支,可以用 git branch -D <name>強行刪除。