Git - Git教程 1.2:创建与合并分支
原理
1 - Git 的每次提交,它都会把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在 Git 里这个分支叫主分支,即 master 分支
HEAD 严格来说不是指向提交,而是指向 master,master 才是指向提交的,所以 HEAD 指向的就是当前分支。一开始的时候,master 分支是一条线,Git 用 master 指向最新的提交,再用 HEAD 指向 master,就能确定当前分支,以及当前分支的提交点
2 - 每次提交时 master 分支都会向前移动一步,这样随着你不断提交,master 分支的线也越来越长。当我们创建新的分支,比如 dev,Git 就会新建一个指针叫 dev,它指向 master 相同的提交,再把 HEAD 指向 dev,就表示当前分支在 dev 上
3 - Git 创建一个分支很快,因为除了增加一个 dev 指针,改一改 HEAD 的指向,工作区的文件是没有任何变化的!不过从现在开始,对工作区的修改和提交就是针对 dev 分支了。比如新提交一次后,dev 指针往前移动一步,而 master 指针保持不变
4 - 假如我们在 dev 上的工作完成了,就可以把 dev 合并到 master 上。最简单的方法,就是直接把 master 指向 dev 的当前提交,就完成了合并。所以 Git 合并分支也很快!就改改指针,工作区内容也不变
5 - 合并完分支后,甚至可以删除 dev 分支。删除 dev 分支就是把 dev 指针给删掉,删掉后,我们就剩下了一条 master 分支
命令行
1 - 在桌面上新建一个 REMAKE 版本库,使用 git branch 命令查看当前分支
$ cd /Users/bs.ep/Desktop/REMAKE $ git init Initialized empty Git repository in /Users/bs.ep/Desktop/REMAKE/.git/ $ git branch
这是 git branch 是什么都不会显示的,因为你的版本库是全新的,还没有做任何提交操作
2 - 新增 FILE_T.txt 文件,并进行添加、提交,现在我们查看当前分支状况
1 $ git add FILE_T.txt 2 $ git commit -m "start branch" 3 [master (root-commit) 06d2044] start branch 4 1 file changed, 1 insertion(+) 5 create mode 100644 FILE_T.txt 6 $ git branch 7 * master
git branch 命令会列出所有分支,当前分支前面会标一个 * 号
3 - 创建 dev 分支,且切换到 dev 分支
1 $ git checkout -b dev 2 Switched to a new branch 'dev'
git checkout 命令加上 -b 参数表示创建并切换,相当于以下两条命令
1 $ git branch dev 2 $ git checkout dev 3 Switched to branch 'dev'
4 - 查看当前分支
1 $ git branch 2 * dev 3 master
5 - 之后就以在 dev 分支上正常提交,比如对 FILE_T.txt 做个修改,添加内容 Create a new branch 并进行提交
1 $ git add FILE_T.txt 2 $ git commit -m "new branch" 3 [dev f14f756] new branch 4 1 file changed, 2 insertions(+), 1 deletion(-)
6 - 现在 dev 分支工作完成,切回到 master 分支
1 $ git checkout master 2 Switched to branch 'master'
7 - 切换回 master 分支后查看 FILE_T.txt 文件,刚才添加的内容不见了!因为它是提交在 dev 分支上的,而 master 分支此刻的提交点并没有变
8 - 现在我们把 dev 分支的工作成果合并到 master 分支上
1 $ git merge dev 2 Updating 06d2044..f14f756 3 Fast-forward 4 FILE_T.txt | 3 ++- 5 1 file changed, 2 insertions(+), 1 deletion(-)
git merge 命令用于合并指定分支到当前分支。合并后再查看 FILE_T.txt 的内容,就可以看到和 dev 分支的最新提交是完全一样
9 - 合并完成后,就可以放心地删除 dev 分支
1 $ git branch -d dev 2 Deleted branch dev (was f14f756). 3 $ git branch 4 * master
注:因为创建、合并和删除分支非常快,所以 Git 鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在 master 分支上工作效果是一样的,但过程更安全
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)