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>

git branch 命令详解相关推荐

  1. git checkout 命令详解—— Git 学习笔记 16

    git checkout 命令详解 概览 git checkout 这条命令的常用格式如下: 用法一 git checkout [<commit>] [--] <paths> ...

  2. git reset 命令详解(二)—— Git 学习笔记 08

    git reset 命令详解(二) 上一篇博文git reset 命令详解(一)讲了 git reset 命令的基本原理和用法,这篇博文谈一谈 git reset 的另一种用法--后面跟一个路径(或文 ...

  3. git reset 命令详解(一)—— Git 学习笔记 07

    git reset 命令详解(一) 简而言之,git reset 命令是用来将当前 branch 重置到另外一个 commit 的,这个动作可能同时影响到 index 以及 work director ...

  4. git diff命令详解

    git diff命令详解 diff里面a表示前面那个变量,b表示第二个变量 HEAD     commit版本 Index     staged版本 a.查看尚未暂存的文件更新了哪些部分,不加参数直接 ...

  5. Git 常用命令详解

    Git 常用命令详解 1. Git 常用命令 1.1 常用git 命令图表汇总 1.2 配置个人信息 1.3 创建版本库 1.4 常用Git命令汇总 2. Git 解决代码冲突 3. Git 分支管理 ...

  6. Git stash命令详解和使用

    Git stash命令详解和使用 stash的原理: 将本地没提交的内容(git commit的内容不会被缓存 但git add的内容会被缓存)进行缓存并从当前分支移除,缓存的数据结构为堆栈,先进后出 ...

  7. git log 命令详解

    git log 命令详解 git log 命令用于查看提交历史: git log [options] [<file> <commit> <tag>...] 如果不加 ...

  8. 运维之道 | Git log 命令详解

    Git log 命令详解 Git log 可以让我们查看提交commit history [root@localhost villian]# git log commit 7a690b414f87fb ...

  9. git reset 命令详解 git revert命令详解。

    git reset 命令详解 reset命令 介绍 参数 补救 git revert命令 revert说明 举例: 命令 reset命令 介绍 git reset 命令格式为: git reset [ ...

最新文章

  1. C# 3.0入门系列
  2. FZU 1075 分解素因子【数论/唯一分解定理/分解素因子裸模板】
  3. python sort 多级排序_sort、sorted排序技巧(多级排序)
  4. [云炬创业管理笔记]第三章测试4
  5. Qt Marketplace
  6. SQL Server CDC配合Kafka Connect监听数据变化
  7. caffe SigmoidCrossEntropyLossLayer
  8. pandownload最新复活版登录失败_【不看后悔】百度网盘不限速下载,最安全的方法(满血复活)...
  9. websphere Error 404:SRVE0190E: File not found: index.action
  10. mongodb系列~mongodb的副本集搭建和原理
  11. Java 基础【01】 This 用法
  12. java案例代码2-素数判断测试
  13. java spring log4j_配置spring的log4j日志记录
  14. springboot输出流到页面_Springboot如何使用Map将错误提示输出到页面
  15. 表格超出_?那些年Word表格你肯定踩过的坑
  16. Android 10.0 SystemUI状态栏显示和隐藏自定义图标
  17. Fractal Streets 递归+坐标转换
  18. 35 米色系网页设计
  19. mysql 备份 恢复
  20. react项目在ie11浏览器运行报错Instance method `debug.destroy()` is deprecated and no longer does anything

热门文章

  1. 利用NSLOOKUP命令进行DNS层次查询
  2. Java length() 方法、length 属性和 size() 方法有什么区别?
  3. 学了那么久Python还什么都做不了,我觉得你该试试这个方法了
  4. npm登录:忘记了用户名和密码,通过邮箱找回流程
  5. 【软考】系统集成项目管理工程师(十四)项目合同管理
  6. 打击标题党,痛斥灌水文
  7. 知识图谱(KG)存储、可视化、公开数据集、图计算、图编程工具分享
  8. java周记工作内容
  9. Python Socket 编程详细介绍
  10. vue拿到某个节点的属性_vue实现将某个dom元素或组件挂载到根节点