Git 常用操作(3)- 本地分之显示、创建、切换、合并和删除操作
1. 分支簡介
Git 的 “master” 分支并不是一個特殊分支。它就跟其它分支完全沒有區別。之所以幾乎每一個倉庫都有 master 分支,是因為 git init 命令默認創建它,并且大多數人都懶得去改動它。
2. 分支顯示 (git branch)
git branch命令可以將分支名列表顯示,同時可以確認當前所在分支。
$ git branch
* master
可以看到 master 分支左側標有“*”(星號),表示這是我們當前所在的分支。
3. 分支創建 (git branch [branch name])
使用如下命令可創建一個分支
$ git branch dev
4. 分支切換 (git checkout [branch name])
要切換到一個已存在的分支,你需要使用 git checkout 命令。我們現在切換到新創建的 dev 分支去:
$ git checkout dev
注意:分支切換會改變你工作目錄中的文件,在切換分支時,一定要注意你工作目錄里的文件會被改變。如果是切換到一個較舊的分支,你的工作目錄會恢復到該分支最后一次提交時的樣子。
5. 分支創建并切換 (git checkout -b [branch name])
如果想以當前的 master 分支為基礎創建新的分支,我們需要用到 git checkout -b命令。
- 切換到feature-A 分支并進行提交
執行下面的命令,創建名為feature-A 的分支。
$ git checkout -b feature-A
Switched to a new branch 'feature-A'
實際上,連續執行下面兩條命令也能收到同樣效果。
$ git branch feature-A
$ git checkout feature-A
創建feature-A 分支,并將當前分支切換為feature-A 分支。這時再來查看分支列表,會顯示我們處于feature-A 分支下。
$ git branch
* feature-A
master
feature-A 分支左側標有“*”,表示當前分支為 feature-A。在這個狀態下像正常開發那樣修改代碼、執行 git add 命令并進行提交的話,代碼就會提交至 feature-A 分支。
- 切換到master 分支
$ git checkout master
Switched to branch 'master'
- 切換回上一個分支
$ git checkout -
Switched to branch 'feature-A'
像上面這樣用“-”(連字符)代替分支名,就可以切換至上一個分支。當然,將“-”替換成 feature-A 同樣可以切換到 feature-A 分支。
6. 分支合并 (git merge)
接下來,我們假設 feature-A 已經實現完畢,想要將它合并到主干分支 master 中。首先切換到master 分支。
$ git checkout master
Switched to branch 'master'
然后合并 feature-A 分支。為了在歷史記錄中明確記錄下本次分支合并,我們需要創建合并提交。因此,在合并時加上–no-ff參數。
$ git merge --no-ff feature-A
隨后編輯器會啟動,用于錄入合并提交的信息。將編輯器中顯示的內容保存,關閉編輯器,然后就會看到下面的結果。
Merge made by the 'recursive' strategy.
README.md | 2 ++
1 file changed, 2 insertions(+)
7. 刪除分支 (git branch -d [branch name])
feature-A 分支的內容合并到 master 分支之后,就不再需要 feature-A 分支了,此時我們就需要將該分支刪除掉
$ git branch -d feature-A
Deleted branch feature-A (3a0874c).
8. 分支管理
–merged 與 --no-merged 這兩個有用的選項可以過濾這個列表中已經合并或尚未合并到當前分支的分支。
- 查看哪些分支已經合并到當前分支,可以運行 git branch --merged:
$ git branch --merged
iss53
* master
因為之前已經合并了 iss53 分支,所以現在看到它在列表中。在這個列表中分支名字前沒有 * 號的分支通常可以使用 git branch -d 刪除掉;你已經將它們的工作整合到了另一個分支,所以并不會失去任何東西。
- 查看所有包含未合并工作的分支,可以運行 git branch --no-merged:
$ git branch --no-merged
testing
這里顯示了其他分支。因為它包含了還未合并的工作,嘗試使用 git branch -d 命令刪除它時會失敗:
$ git branch -d testing
error: The branch 'testing' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testing'.
如果真的想要刪除分支并丟掉那些工作,如同幫助信息里所指出的,可以使用 -D 選項強制刪除它。
總結
以上是生活随笔為你收集整理的Git 常用操作(3)- 本地分之显示、创建、切换、合并和删除操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Git 常用操作(2)- 创建标签
- 下一篇: Git 常用操作(4)- 更改提交