Git 笔记 - git branch

本文详细介绍了如何在Git中管理本地、远程和所有分支,包括创建、重命名、删除以及查看分支状态的各种实用命令。掌握这些技巧,提升你的Git分支操作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

git branch 是操作分支的命令 ʕ •ᴥ•ʔ

实际操作如下:
1. 列出「本地」分支
$ git branch
2. 列出「远程」分支

-r --remotes

$ git branch -r
3. 列出「本地」和「远程」分支

-a --all

$ git branch -a
4. 新建分支
# 从当前分支 A 创建一个新分支 B,
# 创建后还是位于分支 A,
# 需要使用「git checkout」切换到分支 B
$ git branch <分支名>
5. 修改分支名字

-m --move

# 为当前分支改名
$ git branch -m <新分支名>
# 为指定分支改名
$ git branch -m <原分支名> <新分支名>
# 为指定分支「强制」改名(方式 1)
$ git branch -M <原分支名> <新分支名>
# 为指定分支「强制」改名(方式 2)
$ git branch -m -f <原分支名> <新分支名>
6. 删除「本地」分支

-d --delete

# 常规删除一个分支( ⚠️ 该分支没有未合并的变动)
$ git branch -d <分支名>

# 强制删除一个分支( ⚠️ 不管有没有未合并变化)(方式 1)
$ git branch -D <分支名>

# 强制删除一个分支( ⚠️ 不管有没有未合并变化)(方式 2)
$ git branch -d -f <分支名>
6. 删除「远程」分支
# 删除远程跟踪的分支
$ git branch -r -d <分支名>
7. 查看分支的最新信息

-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
8. 查看是否合并到当前分支的分支
# --merged: 列出合并到 HEAD(或指定的 commit)中的分支
$ git branch --merged [<commit>]

# --no-merged: 列出尚未合并到 HEAD(或指定的 commit)中的分支
$ git branch --no-merged [<commit>]

# ⚠️ 配合 -r 即可查看合并/未合并的「远程」分支
# ⚠️ 配合 -a 即可查看合并/未合并的「本地」和「远程」分支
9. 查看是否包含指定提交的分支
# --contains: 只列出包含指定提交的分支(如果没有指定则为HEAD)
$ git branch --contains [<commit>]

# --no-contains: 只列出不包含指定提交的分支(如果不指定则为HEAD)
$ git branch --no-contains [<commit>]

# ⚠️ 配合 -r 即可查看合并/未合并的「远程」分支
# ⚠️ 配合 -a 即可查看合并/未合并的「本地」和「远程」分支
### 解决远程分支列表为空的问题 当遇到 `git branch -r` 或者 `git branch --remotes` 命令返回空的结果时,这通常意味着本地仓库尚未获取到任何来自远程仓库的信息。为了修复这个问题,可以尝试执行以下操作: #### 获取最新的远程分支信息 通过运行 `git fetch origin` 可以从指定的远程服务器拉取最新数据而不影响工作区中的文件状态。此命令会更新所有的远程跟踪分支以及它们对应的提交历史记录。 ```bash git fetch origin ``` 如果仍然看不到远程分支,则可能是因为默认配置未设置为显示所有远程分支。此时可以通过调整 Git 的全局配置来解决问题[^1]。 #### 配置Git以查看全部远程分支 确保 Git 能够正确处理大小写的差异非常重要,尤其是在不同操作系统之间共享项目的情况下。对于某些环境而言,默认情况下可能会忽略这些区别,因此需要显式地关闭该特性: ```bash git config core.ignorecase false ``` 另外还需要确认是否启用了对远程分支的自动追踪功能。如果没有启用的话,那么即使成功同步了远端的数据,在本地也无法看到相应的分支条目。为此可添加如下配置项: ```bash git config --global remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" ``` 完成上述更改之后再次尝试列出远程分支应该就能正常显示出预期的内容了。 #### 清理并重新建立索引 有时候由于缓存或其他原因也可能导致无法正确读取远程分支列表。这时不妨先清理旧有的索引再重试一次: ```bash rm -rf .git/fetch_HEAD git gc --prune=now git fetch --all ``` 以上方法基本上能够覆盖大多数场景下解决远程分支列表为空的情况。当然具体问题还需结合实际情况进一步排查分析。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值