Git 系列 - 4. Git 分支管理
下面是关于 Git 分支(branch)的常见基本操作及其示例,供你参考和使用:
查看分支列表
- 查看本地分支:
1
git branch - 查看远程分支:
1
git branch -r - 查看所有分支(本地 + 远程):
1
git branch -a
- 查看本地分支:
创建新分支
- 只创建分支,不切换到该分支:
1
git branch <新分支名> - 创建并切换到新分支(常用):
1
2
3
4
5# 旧写法
git checkout -b <新分支名>
# 或者 Git 2.23+ 推荐用法
git switch -c <新分支名>
- 只创建分支,不切换到该分支:
切换分支
- 切换到已有分支:
1
2
3
4
5# 旧写法
git checkout <分支名>
# Git 2.23+ 推荐用法
git switch <分支名>
- 切换到已有分支:
重命名分支
- 重命名当前所在分支:
1
git branch -m <新分支名> - 重命名指定分支(需先切换到其他分支):
注意:1
git branch -m <旧分支名> <新分支名>git branch -m和git branch -M的区别:
命令 是否允许覆盖已有分支 作用 git branch -m❌ 不允许 安全重命名,不覆盖已有分支 (如果 新分支名已经存在,则报错)git branch -M✅ 允许 强制重命名,覆盖已有分支 (如果 新分支名已经存在,会强制覆盖,即删除新分支名并重命名)- 重命名当前所在分支:
合并分支
下面示例演示使用git merge将其它分支上的工作合并到当前分支:- 先切换到目标分支(例如
main分支):
1
git switch main - 将另外一个分支(例如
feature)的改动合并到当前分支:
1
git merge feature - 如果合并过程中有冲突,需要手动解决冲突后再提交。
另外,
git rebase也可以用于合并分支 让feature变基到main**上面指令作用:1
2git switch feature
git rebase mainfeature分支的新提交(不同于main的提交) 会被取出,然后依次 “重放” 到main最新提交之后。feature分支现在看起来像是从main最新提交直接创建的,历史是线性的。
如果 feature 和 main 都修改了相同的代码,可能会发生冲突,解决办法:
- 手动编辑冲突的文件,解决冲突。
- 添加解决后的文件:
1
2git add file.txt
git rebase --continue - 如果多个提交发生冲突,重复上述步骤,直到
rebase完成。
如果
rebase过程中出现问题,你可以放弃rebase,恢复原状态:这会让1
git rebase --abortfeature分支回到rebase之前的状态,避免修改提交历史。git rebase和git merge二者区别:git rebase和git merge对两个分支的影响:
操作 对 main的影响对 feature的影响git rebase main不变 变基到 main最新提交,提交 ID 可能会改变git merge main产生一个合并提交 M不变 git rebase和git merge对提交历史的影响:
mergerebase提交历史 保留分支合并历史(会产生合并提交) 提交历史保持线性 是否创建新提交 产生一个新的合并提交 重新应用原始提交,可能修改提交哈希 适用场景 团队协作,保留完整历史 个人开发,保持整洁的历史 是否会修改提交历史 ❌ 不会 ✅ 会修改提交历史 - 先切换到目标分支(例如
删除本地分支
- 安全删除,若本地分支改动未合并到其他分支,Git 会警告:
1
git branch -d <分支名> - 强制删除,不管是否合并:
1
git branch -D <分支名>
- 安全删除,若本地分支改动未合并到其他分支,Git 会警告:
推送本地分支到远程
- 如果远程不存在同名分支,需要指定要推送到的远程仓库并创建对应分支:
1
git push origin <分支名> - 若希望本地分支和远程分支保持相同名称,可加上
-u(设置跟踪关系),下次只需git push:
1
git push -u origin <分支名>
- 如果远程不存在同名分支,需要指定要推送到的远程仓库并创建对应分支:
从远程拉取分支
- 获取最新的远程信息:
1
git fetch - 检出(创建并切换到)远程分支到本地:
或使用 Git 2.23+ 的写法:1
git checkout -b <本地分支名> origin/<远程分支名>1
git switch -c <本地分支名> origin/<远程分支名>
- 获取最新的远程信息:
查看分支合并图/历史记录
- 可以使用
git log --graph --oneline --decorate来查看分支的历史演进关系,直观地了解分支如何合并和分叉。
- 可以使用
以上是 Git 分支的基本操作流程及常见用法。根据团队协作和项目规范的不同,你可能需要结合 Pull Request 流程、代码审阅等来进行分支管理。合理地使用分支能让开发流程更有条理、降低冲突并提升协作效率。
Git 系列 - 4. Git 分支管理
http://yylustb.github.io/2025/02/24/code/Git/git_4-branch-2025-02-24/