Git 本地分支从核心概念到常用命令

kkcode
kkcode
2026-10-10阅读 371

一、核心概念

  • 本地分支:是你本地仓库中独立的开发线,用于隔离不同的功能开发或实验。
  • HEAD:指向当前所在分支的最新提交。
  • 工作区、暂存区、本地仓库:修改文件 → git add 加入暂存区 → git commit 提交到本地仓库(当前分支)。
  • 分支本质上是一个指向提交对象的可变指针,创建和切换都非常轻量。

二、常用操作命令

操作命令
查看本地分支列表git branch(当前分支前有 * 标记)
查看所有分支(含远程)git branch -a
创建新分支(停留在当前分支)git branch <分支名>
创建并切换到新分支git checkout -b <分支名> 或 git switch -c <分支名>
切换分支git checkout <分支名> 或 git switch <分支名>
删除本地分支(已合并)git branch -d <分支名>
强制删除本地分支(未合并)git branch -D <分支名>
重命名当前分支git branch -m <新分支名>
查看分支与远程的追踪关系git branch -vv
查看分支合并图git log --oneline --graph --all

三、分支工作流示例

# 1. 基于 main 分支创建 feature 分支
git checkout main
git pull                 # 更新本地 main
git checkout -b feature/new-login

# 2. 在 feature 分支上开发、提交
git add .
git commit -m "add login page"

# 3. 切回 main 合并 feature
git checkout main
git merge feature/new-login

# 4. 删除已合并的 feature 分支
git branch -d feature/new-login

创建发版分支

# 1. 同步远程最新状态(防止基于过期的 master 信息做判断)
git fetch origin

# 2. 落后自检:列出 origin/master 有而当前 HEAD 没有的提交
#    无输出 = 当前 HEAD 已包含 master 全部提交,流水线落后检测必过
git log --oneline HEAD..origin/master

# 3. 从当前位置创建并切换到新分支
#    当时停在 feature 分支(7947c72 = master + M10),
#    所以新分支起点天然满足"不落后 master"
git checkout -b release-20261013

# 4. 推送新分支到远程(普通推送,新分支无冲突)
git push origin release-20261013

# 5. 验证(输出截断后补充的确认)
git branch --show-current                    # 确认当前已在 release-20261013
git ls-remote origin release-20261013        # 确认远程分支存在且指向 7947c72

四、注意事项

  • 切换分支前确保工作区干净(git status 显示无未提交修改),否则切换可能被拒绝或携带未提交的修改。
  • 如果当前分支有未提交的修改且想强制切换,可使用 git stash 暂存,切回后再 git stash pop 恢复。
  • 删除分支时,-d 会检查是否已合并,若未合并需用 -D(谨慎操作,丢失提交无法恢复)。
  • 本地分支与远程分支是独立的,本地删除不影响远程分支,推送到远程需用 git push origin <分支名>。

五、常见场景速查

  • 误删未合并分支:用 git reflog 找回提交 hash,然后 git checkout -b <分支名> <hash> 重建。
  • 撤销本地分支的修改:git reset --hard HEAD~1(回退一个提交,慎用)。
  • 将当前分支设置为追踪某个远程分支:git branch -u origin/<远程分支名>
评论数量:0