Git - Git分支管理

目录

Git分支管理

Git 的默认分支就是 master。你所作的commit会在master分支上自动移动。 在多次提交操作之后,master分支指向最后那个commit object(提交对象链)。

分支创建

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

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

  1. 查看当前分支

    git 复制代码
    git branch
  2. 分支创建

    git 复制代码
    git branch dev
  3. 分支切换

    git 复制代码
    git checkout dev
  4. 分支创建并切换同时完成

    git 复制代码
    git checkout -b dev2
  5. 分支最近切换

    git 复制代码
    git checkout -

多个分支共享版本跟踪

  1. 在dev2分支中创建一个文件z.txt,三个分支下都可以追踪到z.txt文件
  2. 在dev分支中,将z.txt文件添加,三个分支下都可以追踪到z.txt文件
  3. 在dev分支中,将z.txt文件提交,只有dev分支下有z.txt文件,其它两个分支下没有

分支合并

  1. 基于上面的例子,切换到master上做dev的合并,合并后,就会发现master分支下也出现了z.txt文件。

    git 复制代码
    git merge dev
  2. 文件进行修改

    • 切换到dev分支上,将z.txt文件进行修改
    • 切换回master分支,会提示z.txt文件进行了修改

分支删除

  1. 不能删除自己所在的分支
  2. 可以切换到master删除一个合并后的或者没有发生变化的分支
  3. 如果一个分支发生了变化,不能删除。
    如果要强制删除可以git branch -D dev2

分支的本质

master指向的是提交

HEAD是指向当前的分支,当前在哪个分支就指向哪个分支

第二张图上我们可以看到创建了dev的分支,当我们切换到dev分支的时候HEAD就会指向dev

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

  • master分支cat .git/HEAD
  • dev分支

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

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

分支的冲突

  1. 在dev中修改z.txt文件,并提交
  2. 切换回master中,修改z.txt文件,并提交
  3. 合并时,会发现冲突
git 复制代码
<<<<<<<<<<<HEAD是当前指向的分支所修改
>>>>>>>>>>dev是dev分支修改
  1. 我们需要手工合并。

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

    git 复制代码
    git log --graph

分支管理策略

git 的分支整体预览图如下:

从上图可以看到主要包含下面几个分支:

master:git默认主分支(这里不作操作)。

stable:稳定分支,替代master,主要用来版本发布。

develop:日常开发分支,该分支正常保存了开发的最新代码。

feature:具体的功能开发分支,只与 develop 分支交互。

release:release 分支可以认为是 stable分支的未测试版。比如说某一期的功能全部开发完成,那么就将 develop 分支合并到 release分支,测试没有问题并且到了发布日期就合并到 stable分支,进行发布。

bugfix:线上 bug 修复分支。

相关推荐
Tatalaluola1 小时前
Git版本控制常用命令
git
我有酒两杯2 小时前
记录一次git使用
git
caz282 小时前
git bash突然ssh不能用了
git·ssh·bash
Remember_9932 小时前
【JavaSE】一站式掌握Java面向对象编程:从类与对象到继承、多态、抽象与接口
java·开发语言·数据结构·ide·git·leetcode·eclipse
移远通信3 小时前
短信的应用
java·git·python
论迹3 小时前
【Git】-- 分支管理
git·ubuntu·版本控制
在下小孙4 小时前
Git与SVN常用指令
git·svn
H Journey17 小时前
Git 教程
git
蜜汁小强1 天前
macOS 上的git代理配置在哪里
git·macos·代理模式·proxy模式
钟佩颖1 天前
Git .
git