16 分支简介和基础操作
分支简介
在 Git 中,分支是一个非常重要的概念。分支允许你从主线分离出来,在不影响主线的情况下进行开发。通过分支,你可以轻松地管理不同的功能开发、修复 Bug 或实验性代码。
分支的核心思想是:每个分支都是一个独立的开发环境。你可以在分支上进行任何修改,而不会影响其他分支的代码。
为什么需要分支?
- 并行开发:多个开发人员可以在不同的分支上同时工作。
- 隔离功能:每个新功能或修复都可以在独立的分支上进行开发。
- 代码回滚:如果某个分支的代码出现问题,可以轻松回滚到之前的状态。
- 代码审查:通过分支提交代码后,可以进行代码审查,确保代码质量。
git switch
git switch <分支名> # 切换到已有分支
git switch -c <新分支名> # 创建并切换到新分支(相当于 git checkout -b)
git switch -c <新分支名> <起点> # 从指定 commit/分支创建并切换
git switch --detach <提交ID> # 进入“游离 HEAD”状态
不同情况 | 工作区 | 暂存区 | 版本库 |
---|---|---|---|
工作区、暂存区干净 | 被分支n覆盖 | 被分支n覆盖 | 切换到分支n |
工作区、暂存区存在未提交内容,并且与分支n冲突 | x | x | x |
工作区、暂存区存在未提交修改,可以与新分支合并 | 保留 | 保留 | 切换到分支n |
x:终止 git switch 命令。
git branch
创建分支
git branch 新分支名
切换分支
# 切换到已有分支
git checkout 分支名
# 创建并切换到新分支
git checkout -b 新分支名
查看分支
git branch
查看当前项目中所有分支:
testgit@zxzsk ~/test (nb)> git branch
main
* nb
合并分支
当一个分支的开发完成后,可以将其合并到主分支(通常是 main
或 master
)
# 例如将 nb 分支合并到 main 分支:
git checkout main
git merge nb
删除分支
# 如果一个分支已经完成开发 并被合并,可以删除该分支:
git branch -d 分支名
# 如果分支未被合并,强制删除可以使用:
git branch -D 分支名
查看分支历史
查看分支的提交历史:
git log --oneline --graph --all
这将以图形化的方式显示所有分支的提交历史。
* b45203d (main) 测试提交
| * 431032f (HEAD -> nb) 测试提交
| * a3a1954 测试提交
|/
* 82d514f (origin/main, origin/HEAD) 测试提交
* d1febb8 测试提交
* 9a4ee26 测试提交nb
* 307bf26 上传文件至 /
* 25f2d94 测试提交
* 41090c8 Initial commit