Git 分支管理是Git版本控制系统中一个强大而核心的功能,它允许开发者创建多个平行的开发线,从而实现代码的并行开发和管理。以下是使用 git branch
命令进行分支管理的一些基本操作和高级技巧。
基本操作:
-
查看分支:
- 列出所有本地分支:
git branch
- 列出所有本地和远程分支:
git branch -a
- 列出已合并到当前分支的分支:
git branch --merged
- 列出未合并到当前分支的分支:
git branch --no-merged
- 列出所有本地分支:
-
创建分支:
- 创建名为
new-feature
的新分支:git branch new-feature
- 从特定提交创建分支(例如,基于最近的第三次提交):
git branch new-feature HEAD~3
- 创建名为
-
切换分支:
切换到已存在的分支new-feature
:git checkout new-feature
或git switch new-feature
(Git 2.23+) -
删除分支:
- 删除本地分支
old-feature
:git branch -d old-feature
- 如果分支未被合并,使用
-D
强制删除:git branch -D old-feature
- 如果分支未被合并,使用
- 删除本地分支
-
重命名分支:
- 重命名当前分支为
renamed-feature
:git branch -m renamed-feature
- 重命名当前分支为
高级操作:
-
合并分支:
- 将
new-feature
分支合并到当前分支:git merge new-feature
- 使用
--no-ff
选项禁用 fast-forward 合并,保留分支历史:git merge --no-ff new-feature
- 将
-
解决冲突:
在合并时遇到冲突,Git 会标记冲突文件,需要手动编辑解决冲突,然后git add
解决后的文件,再git commit
完成合并。 -
变基(Rebase):
- 将
new-feature
分支基于main
分支的最新提交进行变基:git checkout new-feature
然后git rebase main
- 这可以使得提交历史更加线性,但需谨慎使用,尤其是当分支已推送到公共仓库时。
- 将
-
推送分支到远程仓库:
- 推送本地
new-feature
分支到远程仓库:git push -u origin new-feature
-u
或--set-upstream
用于关联本地分支与远程分支。
- 推送本地
-
拉取远程分支:
- 如果远程有新的分支,首先查看:
git fetch
- 然后可以创建并切换到该分支的本地副本:
git checkout -b local-branch origin/remote-branch
- 如果远程有新的分支,首先查看:
注意事项:
- 在进行分支操作前,确保工作目录干净,或者已经将改动暂存或提交。
- 分支策略很重要,比如 Git Flow 提倡一种特定的分支管理模型,包括 master(或main)、develop、feature、hotfix、release 等分支。
- 频繁使用
git pull
或git fetch
来同步远程仓库的最新状态,避免合并冲突。
通过熟练掌握这些命令,你可以有效地管理项目中的代码分支,促进团队间的协作与代码整合。