一文说清:git分支基本操作

1 引言

git分支,是git版本管理的一个非常重要的概念。

下面记录一下根据视频学习的相关过程。

没有用到视频中的GitKraken工具,是我看到它要收费,就算了吧,改用免费的SourceTree,可以到git官网下载:

https://git-scm.com/downloads/guis

注:

svn中,有主干(trunk)的概念,跟git的main分支是一个意思。

其实我觉得把main分支改成"主干"的说法,从概念上讲更合适一些。

本文还是沿用主流的说法吧。

2 主分支提交

在main分支创建main1.txt文件,提交一次,如下:

复制代码
echo main1 > main1.txt
git add .
git commit -m "main:1"

用SourceTree工具,可以看到分支结果,如下:

之后依次用上面的方式,创建main2.txt和main3.txt,依次提交两次。

通过SourceTree工具,可以看到分支结果,如下:

表示主分支的3次提交。

3 创建开发分支

使用如下命令,创建dev分支,并切换到dev分支。

复制代码
git branch dev
git switch dev
#或
git checkout dev

可视化结果如下:

命令行显示如下:

表示当前已经切换到dev分支。

注意:

在 Git 2.23 及以后,虽然 git checkout 仍然可以用于切换分支和检出文件,但 Git 官方推荐使用 git switch 来切换分支,使用 git restore 来恢复文件,以使命令的用途更加明确。

4 开发分支提交

创建dev1.txt并提交,如下:

在SourceTree中,点击两次"显示远程分支",就可以看到变化,如下:

5 主分支并行提交

使用如下命令:

复制代码
echo main4 > main4.txt
git add .
git commit -m "main:4"

提交main4和main5两次修改。

可视化分支情况如下:

可以看到main分支和dev分支已经分叉了。

实际工作中,这种情况很常见,因为开发任务都是并行的。

6 合并开发分支

在dev分支确认没有问题后,就要合并到主分支。

首先,切换到主分支。

复制代码
git switch main

再在当前分支(main)下合并目标分支(dev),如下:

复制代码
git merge dev

会提示输入日志,使用默认的即可,默认编辑器使用vim,输入冒号和wq即可,如下:

复制代码
:wq

通过SourceTree,可以清晰地看到合并过程:

在命令行中,可以通过git log命令查看分支图,如下:

复制代码
git log --graph --oneline --decorate --all

结果如下:

相比可视化工具而言,不那么直观,但也够用。

7 删除开发分支

分支合并后,可以删除,命令如下:

复制代码
git branch -d dev

使用branch命令查看,结果如下:

在SourceTree上查看,如下;

可以看到只有main分支了。

一般情况下,如果分支合并了,就要将其删除。分支过多,会导致不好管理。

注意:

如果dev分支未合并,就不能用-d(小写)参数删除该分支,必须用-D(大写)来删除。

8 总结

git分支,可以方便多人并行开发。

git分支常见命令如下(name表示分支名称):

  • 查看分支列表:git branch
  • 创建分支:git branch name
  • 切换分支(推荐):git switch name
  • 切换分支:git checkout name
  • 合并分支:git merge name
  • 删除分支(已合并):git branch -d name
  • 删除分支(未合并):git branch -D name

9 参考

【GeekHour】一小时Git教程"分支简介和基本操作"

视频讲得挺好,感谢作者老杨!

b站确实有不少优秀资源。

相关推荐
༄久梦༒长醉༻1 小时前
技术笔记——Git Worktree工作树
笔记·git
彧azz2 小时前
Git 学习指南:从入门到进阶的完整实践手册
git·学习
浅念-12 小时前
一文吃透Git:本地操作|冲突处理|远程协作|GitFlow工作流详解
大数据·git·elasticsearch·搜索引擎·gitflow
滕州市燕猫虎计算机科技工作室个体工商户16 小时前
Git常用命令汇总
git
czhc114007566318 小时前
2026-09-11 一日综合:树的父链、git 概念、三方死锁、静默失败
大数据·git·elasticsearch
ChampaignWolf18 小时前
abapgit-agent:用 Git 当中介,让 Claude Code 自己完成 ABAP 闭环开发
git·ai·abap·claude·abapgit·mcp
嘴贱欠吻!19 小时前
如何成为 CJMP 贡献者:AtomGit贡献流程与要求
git·ci/cd
滕州市燕猫虎计算机科技工作室个体工商户20 小时前
.gitignore文件不生效的解决方法
git·.gitignore·.gitignore不生效
hasty1 天前
一个 Git 分支名,如何穿透到 CI Runner 的 Shell?
git·ci/cd
橘色的喵1 天前
Claude Code 状态栏脚本:一行显示模型、上下文占用、git 分支和当前目录
linux·git·bash·claude