详解Git分支及分支合并

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 系列文章目录
  • 前言
  • 一、Git分支
  • 二、使用步骤
    • 1、创建分支
    • 2、分支合并
    • 3、远程操控的分支操作
    • 4、远程仓库合并请求
  • 总结


前言

之前的文章我们讲解了Git是什么,Git的基本操作,Git和GitHub之间的关系,这些其实对于我们个人开发者来说已经够用了。但是在工作的实际生成环境下完全不够的,我们不可能什么都放在一个分支上,这样不好管理,尤其是权限的配置,不能谁都拥有全部的权限,所以会创建多个分支,开发用开发的分支,测试用测试的分支,最后上线可以使用合并到master分支。也可以开一个分支来去解决问题,修改好后再合并到主分支中。


一、Git分支

在之前我们用树的形式描述了git版本管理的逻辑,每一个版本就是一个节点。这时这个项目只有一个分支,默认是master分支,那么Git别的分支又是什么意思呢?
详解Git分支及分支合并_第1张图片
以上就是关于Git分支的逻辑理解,如上图master已经拥有了5个版本,在此基础上创建了一个dev分支,这时的dev分支是拥有master的所有记录的(包括文件、版本记录等信息)。在dev分支下创建dev-dev分支,dev-dev分支是会拥有dev分支的所有记录。

二、使用步骤

git checkout -b branch_name         // 创建并切换到branch_name这个分支
git branch                          // 查看所有分支和当前所处分支
git checkout branch_name            // 切换到branch_name这个分支
git branch -d branch_name           // 删除本地仓库的branch_name分支
git branch branch_name              // 创建新分支

1、创建分支

a、创建dev分支
在这里插入图片描述
b、查看所有分支和当前所处分支

在这里插入图片描述
c、切换到dev分支
详解Git分支及分支合并_第2张图片
d、查看dev分支的内容和版本记录
详解Git分支及分支合并_第3张图片
e、在dev分支下增加aaa后提交到本地仓库。此时的内容只在dev分支可见,master就看不到了。
详解Git分支及分支合并_第4张图片
f、切换回master分支,查看内容和提交记录
详解Git分支及分支合并_第5张图片
g、切换到dev分支后创建dev-dev分支,我们发现dev-dev分支拥有dev分支的所有内容和版本记录
详解Git分支及分支合并_第6张图片
h、切换回master分支后虽然没有其他分支的版本记录,但是HEAD指针的引用记录还是全部可以查看到的

详解Git分支及分支合并_第7张图片

2、分支合并

git merge branch_name               // 将分支branch_name合并到当前分支上

a、将dev分支合并到master分支
详解Git分支及分支合并_第8张图片
b、查看master分支的版本记录
详解Git分支及分支合并_第9张图片
c、查看HEAD指针的引用记录。在记录中我们发现合并使用的是Fast-forward,它直接将Head指针指向了a88a7df这个版本,没有进行复制重写。
详解Git分支及分支合并_第10张图片
合并分支远远没有看到的这么轻松,后面肯定会遇到分支冲突等各种冲突场景,我们会专门写一篇文章来讲述这些情景。

3、远程操控的分支操作

git push --set-upstream origin branch_name  // 设置本地的branch_name分支对应远程仓库的branch_name分支
git push -d origin branch_name      // 删除远程仓库的branch_name分支
git pull                            // 将远程仓库的当前分支与本地仓库的当前分支合并
git pull origin branch_name         // 将远程仓库的branch_name分支与本地仓库的当前分支合并
git branch --set-upstream-to=origin/branch_name1 branch_name2  // 将远程的branch_name1分支与本地的branch_name2分支对应
git checkout -t origin/branch_name  // 将远程的branch_name分支拉取到本地

a、设置本地分支和远程分支的对应关系
详解Git分支及分支合并_第11张图片

b、查看GitHub的分支情况
详解Git分支及分支合并_第12张图片
c、在GitHub上在线修改dev-dev分支下的readme.txt文件,增加ccc内容,然后使用命令将修改拉取下来。
详解Git分支及分支合并_第13张图片
d、将远程仓库的dev-dev分支与本地仓库的当前分支(dev)合并
详解Git分支及分支合并_第14张图片
e、在远程仓库创建一个dev-dev-dev分支,增加ddd内容,然后将远程的dev-dev-dev分支拉取到本地

详解Git分支及分支合并_第15张图片
详解Git分支及分支合并_第16张图片
f、从本地删除远程仓库的分支
在这里插入图片描述
详解Git分支及分支合并_第17张图片

4、远程仓库合并请求

对于远程仓库的一个请求合并等操作可以在图形界面上进行操作,较于简单则不进行演示。


总结

此文讲了Git分支及分支合并操作,后续会遇到一些冲突的问题,我们将会再下一篇文章中进行演示解决。

你可能感兴趣的:(Git,git,github)