git branch 命令详解_github

1. 前言
2. 查看分支
3. 创建分支
4. 删除分支
5. 重命名分支
6. 设置上游分支
7. 将分支推送到远程仓库

1. 前言


git branch 用于查看、创建、删除分支、重命名分支,通过不同的命令参数实现相应的功能

2. 查看分支


默认只列出本地分支,不显示远程分支,并且在当前分支前面使用 ​​*​​ 标记



  1. ​git branch​

​-r,--remotes​​: 只列出远程分支,本地分支不会显示



  1. ​git branch -r​

​-a,--all​​: 查看所有分支,包含本地分支和远程分支



  1. ​git branch -a​

​-v,--verbose​​: 查看本地分支及其对应的提交记录



  1. ​# 查看本地分支的 commit id 及其对应的备注信息​
  2. ​git branch -v​
  3. ​# 在 -v 的基础上多显示一个本地分支对应的上游分支​
  4. ​git branch -vv​

​--format​​: 格式化输出,用于自定义输出的格式



  1. ​git branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'​

推荐用法



  1. ​git branch -avv​

3. 创建分支


以当前分支为起点,创建一个 dev 分支【使用前提: 当前分支已有提交记录】



  1. ​git branch dev​

可以使用 ​​git checkout -b​​ 创建并切换到新的分支



  1. ​# 创建并切换到新分支​
  2. ​git checkout -b <branch>​

相当于执行下面两个命令



  1. ​# 创建新的分支​
  2. ​git branch <branch>​
  3. ​# 切换到新分支​
  4. ​git checkout <branch>​

4. 删除分支


​-d, --delete​​ delete fully merged branch 删除完全合并的分支



  1. ​git branch -d <branch>​

​-D​​ delete branch (even if not merged) 删除分支 (即使未合并)

使用场景: 本地分支已有新的提交记录,但没推送到远程仓库,此时想要删除分支,必须使用 ​​-D​



  1. ​git branch -D <branch>​

删除远程分支(本地分支不会被删除)



  1. ​# 普通写法​
  2. ​git push origin -d <branch>​
  3. ​# 简写形式​
  4. ​git push origin :<branch>​

在代码托管平台删除了分支,本地仓库该分支还存在,执行下面两个命令中的任意一个都可以解决:



  1. ​git fetch --prune​
  2. ​git remote prune origin​

5. 重命名分支


重命名当前分支(需要先切换到旧分支)



  1. ​git branch -m <branch>​

重命名指定分支(不需要先切换到旧分支)



  1. ​git branch -m <old-branch> <new-branch>​

使用场景 1 : 重命名未上传到远程仓库中的分支



  1. ​# 先切换到 dev 分支,然后再重命名​
  2. ​git checkout dev​
  3. ​git branch -m liang​

  4. ​# 使用两个参数指定要重命名的分支,这种写法不需要先切换到 dev 分支​
  5. ​git branch -m dev liang​

  6. ​# 分支名修改好后推送到远程仓库即可​
  7. ​git push -u origin liang​

使用场景 2 : 重命名已经上传到远程仓库中的分支



  1. ​# 将远程仓库中的 dev 分支签出到本地 (签出并切换到 dev 分支)​
  2. ​git checkout dev​

  3. ​# 重命名当前分支为 liang(当前分支也就变为了 liang)​
  4. ​git branch -m liang​

  5. ​# 将 liang 分支推送到远程仓库并将上游分支设置为 liang​
  6. ​git push -u origin liang​

  7. ​# 删除远程仓库中的 dev 分支​
  8. ​git push origin :dev​

6. 设置上游分支



  1. ​git branch -u origin/liang​

7. 将分支推送到远程仓库


将本地分支推送到远程仓库: (-u, —set-upstream 设置上游分支)



  1. ​git push -u origin <branch>​