[TOC] #### 1. git branch 介紹 --- git branch 命令用于分支相關(guān)操作,通過不同的命令參數(shù)實(shí)現(xiàn)相應(yīng)的功能 它具有創(chuàng)建、刪除分支、重命名分支和查看分支信息的功能,還可以設(shè)置和刪除本地分支的上游分支 該命令的用法很多,但都易于理解,想要完全掌握也是需要點(diǎn)時(shí)間的,可以每隔一段時(shí)間復(fù)習(xí)一下,加深記憶 #### 2. 查看分支 --- ``` # 查看本地分支,在當(dāng)前分支前面使用 `*` 標(biāo)記,不顯示遠(yuǎn)程分支 git branch # -r,--remotes: 只列出遠(yuǎn)程分支,本地分支不會(huì)顯示 git branch -r # -a,--all: 查看所有分支,包含本地分支和遠(yuǎn)程分支 git branch -a # -v,--verbose: 查看本地分支及其對(duì)應(yīng)的提交記錄 # 顯示本地分支的 commit id 及其對(duì)應(yīng)的備注信息 git branch -v # 在 -v 的基礎(chǔ)上多顯示一個(gè)本地分支對(duì)應(yīng)的上游分支 git branch -vv # 查看所有本地分支和遠(yuǎn)程分支、當(dāng)前所在分支、本地分支和遠(yuǎn)程分支的關(guān)聯(lián)情況【推薦用法】 git branch -avv ``` #### 3. 創(chuàng)建分支 --- 以當(dāng)前分支為起點(diǎn),創(chuàng)建一個(gè) dev 分支【使用前提: 當(dāng)前分支已有提交記錄】 ``` git branch dev ``` 可以使用 `git checkout -b` 創(chuàng)建并切換到新的分支 ``` # 創(chuàng)建并切換到新分支 git checkout -b <branch> ``` 相當(dāng)于執(zhí)行下面兩個(gè)命令 ``` # 創(chuàng)建新的分支 git branch <branch> # 切換到新分支 git checkout <branch> ``` #### 4. 刪除分支 --- `-d, --delete` delete fully merged branch 刪除完全合并的分支 ``` git branch -d <branch> ``` `-D` delete branch (even if not merged) 刪除分支 (即使未合并) 使用場(chǎng)景: 本地分支已有新的提交記錄,但沒推送到遠(yuǎn)程倉(cāng)庫(kù),此時(shí)想要?jiǎng)h除分支,必須使用 `-D` ``` git branch -D <branch> ``` 刪除遠(yuǎn)程分支(本地分支不會(huì)被刪除) ``` # 普通寫法 git push origin -d <branch> # 簡(jiǎn)寫形式 git push origin :<branch> ``` 在代碼托管平臺(tái)刪除了分支,本地倉(cāng)庫(kù)該分支還存在,執(zhí)行下面兩個(gè)命令中的任意一個(gè)都可以解決: ``` git fetch --prune git remote prune origin ``` #### 5. 重命名分支 --- 重命名當(dāng)前分支(需要先切換到舊分支) ``` git branch -m <branch> ``` 重命名指定分支(不需要先切換到舊分支) ``` git branch -m <old-branch> <new-branch> ``` 使用場(chǎng)景 1 : 重命名未上傳到遠(yuǎn)程倉(cāng)庫(kù)中的分支 ``` # 先切換到 dev 分支,然后再重命名 git checkout dev git branch -m liang # 使用兩個(gè)參數(shù)指定要重命名的分支,這種寫法不需要先切換到 dev 分支 git branch -m dev liang # 分支名修改好后推送到遠(yuǎn)程倉(cāng)庫(kù)即可 git push -u origin liang ``` 使用場(chǎng)景 2 : 重命名已經(jīng)上傳到遠(yuǎn)程倉(cāng)庫(kù)中的分支 ``` # 將遠(yuǎn)程倉(cāng)庫(kù)中的 dev 分支簽出到本地 (簽出并切換到 dev 分支) git checkout dev # 重命名當(dāng)前分支為 liang(當(dāng)前分支也就變?yōu)榱?liang) git branch -m liang # 將 liang 分支推送到遠(yuǎn)程倉(cāng)庫(kù)并將上游分支設(shè)置為 liang git push -u origin liang # 刪除遠(yuǎn)程倉(cāng)庫(kù)中的 dev 分支 git push origin :dev ``` #### 6. 上游分支 --- ``` # 給當(dāng)前分支設(shè)置上游分支 git branch -u <remote>/<branch> # 取消上游分支 git branch --unset-upstream <branch> # 使用示例 git branch -u origin/dev git branch --unset-upstream dev ``` 但在實(shí)際開發(fā)中,使用最多的命令是: ``` # 將本地分支推送到遠(yuǎn)程倉(cāng)庫(kù),并設(shè)置為上游分支 git push -u <remote> <branch> # 使用示例 git push -u origin master ```