Git常用操作 - 分支管理

管宜堯發表於2015-08-13

本文並非講解分支管理知識,而是記錄了Git分支管理的一些命令使用方法,供使用時參考。

以下使用 <branch_name>表示使用者需要替換的內容

建立分支

git checkout -b <branch_name>

上述命令建立一個新的分支 name,並且切換到新的分支,這裡的-b參數列示建立並切換

如果僅僅是建立一個新的分支而不切換到新分支,則直接使用git branch <branch_name>命令。

git branch <branch_name>

在分支之間切換

git checkout <branch_name>

檢視分支

git branch

上述命令會列出所有的分支,該命令只會列出本地分支,如果希望檢視所有分支(包含伺服器上的),使用引數-a

git branch -a

遠端分支會以紅色字型顯示。

分支合併

首先切換到主分支

git checkout master

然後執行merge命令合併分支

git merge <branch_name>

這樣就把name分支合併到主分支了。

關於 Fast Forward 相關內容,感興趣可以參考 Git - Fast Forward 和 no fast forward

分支刪除

git branch -d <branch_name>

這裡的-d (--delete)用於刪除已經merge的分支。

如果要丟棄一個沒有合併的分支,使用命令git branch -D <branch_name>

對於遠端分支的刪除,有兩種方式:

  • 使用--delete引數

    git push origin --delete <branch_name>
    
  • 推送空分支(相當於刪除)

    git push origin :<branch_name>
    

修改分支名稱

git branch -m <old_name> <new_name>

暫存工作現場

當在一個分支上進行操作,但是修改尚不能提交,這時候需要建立一個新的分支解決更加緊急的任務時,可以將當前分支工作狀態暫存起來

git stash

這時可以放心的切換到其它分支進行操作,當完成之後,使用git checkout回到當前分支,使用git stash list命令檢視暫存了哪些現場。

$ git stash list
stash@{0}: WIP on master: f32abab 增加composer檔案

可以看到這裡暫存了一個名為 stash@{0} 的現場。

要恢復現場繼續進行操作,有兩種方式:

  • 第一種方式是使用git stash apply命令,這種方式恢復之後不會刪除stash的內容,需要手動執行git stash drop刪除。

    git stash apply stash@{0}
    

    刪除 stash@{0} :

    git stash drop stash@{0}
    
  • 第二種方式是使用 git stash pop,該命令會在恢復的時候將stash內容刪除

    git stash pop
    

    一般情況下,當手頭工作還沒有完成的時候,可以使用git stash命令將手頭上的工作暫存,切換到其它分支完成緊急任務,再回到該分支,使用git stash pop恢復工作現場。

推送本地分支到遠端倉庫

使用命令 git push origin <branch_name>

$ git push origin issue-101
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/mylxsw/FocusPHP.git
 * [new branch]      issue-101 -> issue-101

拉取遠端分支到本地開發

從遠端倉庫clone時,預設情況下只能看到 master 分支,要在分支工作,需要在建立遠端origindev分支到本地。

git checkout -b issue-101 origin/issue-101

建立本地分支與遠端分支的關聯

git branch --set-upstream dev origin/dev

檢視分支合併情況

git log --graph --pretty=oneline --abbrev-commit

參考:

相關文章