[TOC] #### 1. git branch 介绍 --- git branch 命令用于分支相关操作,通过不同的命令参数实现相应的功能 它具有创建、删除分支、重命名分支和查看分支信息的功能,还可以设置和删除本地分支的上游分支 该命令的用法很多,但都易于理解,想要完全掌握也是需要点时间的,可以每隔一段时间复习一下,加深记忆 #### 2. 查看分支 --- ``` # 查看本地分支,在当前分支前面使用 `*` 标记,不显示远程分支 git branch # -r,--remotes: 只列出远程分支,本地分支不会显示 git branch -r # -a,--all: 查看所有分支,包含本地分支和远程分支 git branch -a # -v,--verbose: 查看本地分支及其对应的提交记录 # 显示本地分支的 commit id 及其对应的备注信息 git branch -v # 在 -v 的基础上多显示一个本地分支对应的上游分支 git branch -vv # 查看所有本地分支和远程分支、当前所在分支、本地分支和远程分支的关联情况【推荐用法】 git branch -avv ``` #### 3. 创建分支 --- 以当前分支为起点,创建一个 dev 分支【使用前提: 当前分支已有提交记录】 ``` git branch dev ``` 可以使用 `git checkout -b` 创建并切换到新的分支 ``` # 创建并切换到新分支 git checkout -b <branch> ``` 相当于执行下面两个命令 ``` # 创建新的分支 git branch <branch> # 切换到新分支 git checkout <branch> ``` #### 4. 删除分支 --- `-d, --delete` delete fully merged branch 删除完全合并的分支 ``` git branch -d <branch> ``` `-D` delete branch (even if not merged) 删除分支 (即使未合并) 使用场景: 本地分支已有新的提交记录,但没推送到远程仓库,此时想要删除分支,必须使用 `-D` ``` git branch -D <branch> ``` 删除远程分支(本地分支不会被删除) ``` # 普通写法 git push origin -d <branch> # 简写形式 git push origin :<branch> ``` 在代码托管平台删除了分支,本地仓库该分支还存在,执行下面两个命令中的任意一个都可以解决: ``` git fetch --prune git remote prune origin ``` #### 5. 重命名分支 --- 重命名当前分支(需要先切换到旧分支) ``` git branch -m <branch> ``` 重命名指定分支(不需要先切换到旧分支) ``` git branch -m <old-branch> <new-branch> ``` 使用场景 1 : 重命名未上传到远程仓库中的分支 ``` # 先切换到 dev 分支,然后再重命名 git checkout dev git branch -m liang # 使用两个参数指定要重命名的分支,这种写法不需要先切换到 dev 分支 git branch -m dev liang # 分支名修改好后推送到远程仓库即可 git push -u origin liang ``` 使用场景 2 : 重命名已经上传到远程仓库中的分支 ``` # 将远程仓库中的 dev 分支签出到本地 (签出并切换到 dev 分支) git checkout dev # 重命名当前分支为 liang(当前分支也就变为了 liang) git branch -m liang # 将 liang 分支推送到远程仓库并将上游分支设置为 liang git push -u origin liang # 删除远程仓库中的 dev 分支 git push origin :dev ``` #### 6. 上游分支 --- ``` # 给当前分支设置上游分支 git branch -u <remote>/<branch> # 取消上游分支 git branch --unset-upstream <branch> # 使用示例 git branch -u origin/dev git branch --unset-upstream dev ``` 但在实际开发中,使用最多的命令是: ``` # 将本地分支推送到远程仓库,并设置为上游分支 git push -u <remote> <branch> # 使用示例 git push -u origin master ```