## 參考資料:
* [git branch官方API](https://git-scm.com/docs/git-branch)
## 實踐總結:
* 本地新分支提交時指定遠程創建新分支, 成功后這兩個分支是否有關聯?(木有!)
* 本地、遠程兩同名分支, 如果本地首次提交 git push 到該同名分支后, 這兩分支是否就建立了關聯?(木有!)
> if you wish to set tracking information for this branch you can do so with:
> git branch --set-upstream-to=origin/<branch> localBranchName
* 如果希望本地分支與遠程分支建立關聯可使用:
```
git branch --set-upstream-to=origin/remoteBranchName localBranchName
```
## git branch 常用指令:
* git branch
* 查看工程的分支列表(本地分支)
* git branch -va
* git branch -r
* git branch -a
* 查看分支列表(查看前建議 使用 `git pull -p` 更新下遠程分支信息)
* `-r` 只查看遠程分支列表
* `-a` 查看遠程及本地分支列表
* `-va` 查看詳細的遠程及本地分支列表
* git checkout remotes/origin/master
* 切換到遠程的 master 分支
* git checkout -b dev
* 基于當前分支創建一個叫“dev”的分支,并切換到該分支,等于以下倆指令(-b 以當前分支為基礎)
* git branch dev 創建一叫“dev”的分支
* git checkout dev 切換到“dev”分支
* git branch -d dev
* 將叫“dev”的本地分支刪除掉(如果該分支代碼未合并到其他分支,將無法刪除)
* git branch -D dev
* 將叫“dev”的本地分支刪除掉(強制刪除,即使該刪除的分支有未合并代碼)
* git branch -dr [origin/branch]
* 相當于 `git branch -r -d origin/branch`刪除的只是本地的緩存分支(`git branch -va`查看的那個),`git pull -p`可恢復;
* git push origin --delete [branch-name]
* 刪除指定的遠程分支(真正刪除遠程分支,需要當前賬號的權限操作)
* git log --graph
* 查看分支合并情況(圖方式顯示)
## 實踐場景:
* 本地新建的分支, 分支代碼已經合并到主分支(master),然后誤刪了, 怎么根據提交commit恢復該分支?
* 使用 `git log -g`找回被誤刪分支之前提交的commit(如果找不到, 可以試試`git reflog`), 拷貝commitId;
* 使用 `git branch branchName 3eac14d`(branchName為分支名、3eac14d為 commitId), 基于當時的commit創建一個新分支;
* 切換到該新分支`git checkout branchName`查看代碼, 就會發現該分支恢復了。
## 相關指令:
* [git_checkout.md](http://www.hmoore.net/wteamxq/git_rank/276599) 切換代碼分支指令:使用git分支必定會用到我!
* [git_merge.md](http://www.hmoore.net/wteamxq/git_rank/276600) 合并分支指令:注意我合并的是**本地分支** 代碼;
* [git_pull.md](http://www.hmoore.net/wteamxq/git_rank/276484) 更新、合并指令: 我能合并**遠程分支**的代碼喲!