Git——分支管理

1. 分支概述

Git 的默认分支就是 master(git init 命令默认创建它)。你所作的commit会在master分支上自动移动。 在多次提交操作之后,master分支指向最后那个commit object(提交对象链)。其他所创分支跟master分支本质没有任何区别

2. 分支的本质

master指向的是提交,HEAD是指向当前的分支,当前在哪个分支就指向哪个分支。

创建了dev的分支,当我们切换到dev分支的时候HEAD就会指向dev

当进入.git文件夹查看HEAD的内容的时候可以看到,所处分支不同内部的文件指向就不同。

master分支

git的分支与svn不同,svn是整体拷贝一份分支,git用的是指针。

如果dev发生修改提交,dev的版本就会向后移动。

在master分支上如果合并就会出现下面的图

3. 分支创建

通过git branch来查看和创建分支。

创建标签记在HEAD指针所指向的提交点创建tag(就是当前所在分支)

git branch dev

分支切换到dev

git checkout dev

创建分支与切换分支同时完成

git checkout -b dev2

在dev2分支创建一个文件t.txt并且提交到版本库,发现在dev2分支可以看到这个文件,当切换会master时候无法看到这个文件

4. 分支删除

不能删除自己所在的分支

可以切换到master删除一个合并后的或者没有发生变化的分支

如果一个分支发生了变化不能删除

发现dev2发生了变化,同时没有合并不能删除。如果要强制删除可以

git branch -D dev2

5. 分支合并

发现master分支上也添加了t.txt这个文件

如果修改的是同一个文件也可以做同样的合并,让我们切换到dev2分支修改t.txt中的内容。在t.txt中添加了一行内容

6. 分支冲突

在dev2分支里面修改t.txt文件添加一行update by dev2后提交

在master分支里面修改t.txt文件同时添加一行update by master后提交

合并时候发现出现冲突

<<<<<<<<<<<HEAD是当前指向的分支所修改

>>>>>>>>>>dev2是dev2分支修改

需要手工合并。修改后报了master的内容

可以通过图形来查看冲突的提交日志。

git log --graph

相关推荐
dunge20261 小时前
2026 ChatGPT Plus / Pro + Codex 实战:从 0 搭一套 AI 编程项目模板,AGENTS.md + Git + 测试一次配好
人工智能·git·chatgpt
福如意如我心意21 小时前
git清除仓库敏感文件并同步至远端的操作
git
Brilliantwxx1 天前
【Linux】 开发|Git 版本控制与 gdb/cgdb 调试
linux·笔记·git
.Hypocritical.2 天前
Git 全套实操|配置 /.gitignore/ 分支合并 / 冲突解决 /git stash 完整教程
git
来日方长。。。。long2 天前
Hermes Agent橙皮书共读|第三篇:保姆级实战部署|本地/VPS从零搭建Hermes
ide·git·hermes
其实防守也摸鱼2 天前
VS Code Git 工作树:解锁多分支并行开发新体验
数据库·git·安全·oracle·架构·自动化
ERD Online2 天前
我们怎么设计 good first issue:让第一个 PR 两小时内合入
数据库·git·后端·开源·issue
Python私教2 天前
Codex 自动写 Commit 够安全吗?一套证据化 Git 提交流程
人工智能·git·后端
果果燕3 天前
实习笔记(一):NFS、Samba、VNC、Git、CMake、systemd、内核、交叉编译
linux·arm开发·c++·笔记·git
美味蛋炒饭.3 天前
Git 版本控制(下)
开发语言·git·学习·总结·后端开发