git branch
是操作分支的命令 ʕ •ᴥ•ʔ
$ git branch
-r
--remotes
$ git branch -r
-a
--all
$ git branch -a
# 从当前分支 A 创建一个新分支 B,
# 创建后还是位于分支 A,
# 需要使用「git checkout」切换到分支 B
$ git branch <分支名>
-m
--move
# 为当前分支改名
$ git branch -m <新分支名>
# 为指定分支改名
$ git branch -m <原分支名> <新分支名>
# 为指定分支「强制」改名(方式 1)
$ git branch -M <原分支名> <新分支名>
# 为指定分支「强制」改名(方式 2)
$ git branch -m -f <原分支名> <新分支名>
-d
--delete
# 常规删除一个分支( ⚠️ 该分支没有未合并的变动)
$ git branch -d <分支名>
# 强制删除一个分支( ⚠️ 不管有没有未合并变化)(方式 1)
$ git branch -D <分支名>
# 强制删除一个分支( ⚠️ 不管有没有未合并变化)(方式 2)
$ git branch -d -f <分支名>
# 删除远程跟踪的分支
$ git branch -r -d <分支名>
-v
-vv
--verbose
# 查看「本地」分支的最新信息
# -v: 每行显示分支信息、最新提交信息、最新commitId,以及与上游分支的关系(若存在)
$ git branch -v
# -vv: 在 -v 的基础上会打印链接的工作树的路径(若存在)和上游分支的名称
$ git branch -vv
# 查看「远程」分支
$ git branch -v -r
$ git branch -vv -r
# 查看「本地」和「远程」分支
$ git branch -v -a
$ git branch -vv -a
# --merged: 列出合并到 HEAD(或指定的 commit)中的分支
$ git branch --merged [<commit>]
# --no-merged: 列出尚未合并到 HEAD(或指定的 commit)中的分支
$ git branch --no-merged [<commit>]
# ⚠️ 配合 -r 即可查看合并/未合并的「远程」分支
# ⚠️ 配合 -a 即可查看合并/未合并的「本地」和「远程」分支
# --contains: 只列出包含指定提交的分支(如果没有指定则为HEAD)
$ git branch --contains [<commit>]
# --no-contains: 只列出不包含指定提交的分支(如果不指定则为HEAD)
$ git branch --no-contains [<commit>]
# ⚠️ 配合 -r 即可查看合并/未合并的「远程」分支
# ⚠️ 配合 -a 即可查看合并/未合并的「本地」和「远程」分支