雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

git branch 命令详解

2024-09-16 14

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

1. 前言


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

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

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))'

推荐用法

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 --prunegit remote prune origin

5. 重命名分支


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

git branch -m <branch>

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

git branch -m <old-branch> <new-branch>

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

# 先切换到 dev 分支,然后再重命名git checkout devgit 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 分支推送到远程仓库并将上游分支设置为 lianggit push -u origin liang# 删除远程仓库中的 dev 分支git push origin :dev

6. 设置上游分支


git branch -u origin/liang

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


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

git push -u origin <branch>
更新于:17天前
赞一波!

文章评论

评论问答