Git——分支详解

  在Git中,假设写了第一个版本的代码VI,然后下面又写了第二个版本的代码V2,那么V2保留的内容是相对于V1新加的内容,他们之间的关系是V2指向V1。这一条线叫做主干:master



  此时在V2的基础上,想新加一个功能G1,那么可以在V2的基础上添加一个分支,这个分支G1是创建了一个新环境来写的。再比如说此时想添加另外一个新功能G2,我们同样创建一个分支,这个分支用来写G2。G1和G2是完全不交涉的。最后如果我们确定G1和G2完成之后,我们只需要将他们合并到主干master上即可。


  •   现在我们有这样的一个版本的代码:

  •   查看状态:
git log

  •   查看当前所处的分支,我们可以看见现在所处的分支是主干master。
git branch

  • 现在我们创建一个新分支,用于开发功能G1。然后我们查看分支,发现有两个分支:一个是当前所处主干master,一个就是刚刚创建的分支G1。

    git branch G1  # 用于创建新分支
    git branch  # 查看当前所处分支

  • 我们切换到分支G1去,然后查看分支,发现现在我们处在G1分支中。
    git checkout G1

  • 现在我们开发功能G1,注意我们现在处于分支G1中。

  

  上图开发完成之后,我们查看一下状态,发现文件被修改了,接着添加到git管理,提交到版本控制,最后查看状态。所以现在我们是在G1这个新的环境中修改代码。

git status
git add .
git commit -m ‘G1‘
git log

   

  • 现在我们切换回到主干master中,所以现在我们处在master中,然后查看刚刚修改的文件,发现刚刚修改的文件不见了,这是因为我们是在G1中修改的,而G1是单独的一个环境,并且没有合并到master中。
git checkout master

  • 现在我们创建另外一个分支G2,开发新功能G2。注意此时我们已经切换到主干master中了。
git branch G2
git checkout G2
...开发中
git add .
git commit -m ‘G2‘

  切换到G2之后,我们开发完G2,然后将他提交到版本控制中,并且查看他的状态,我们发现里面没有G1,只有G2和V2还有V1,这也再次说明G1和G2是单独的一个环境,没有任何交涉,他们都是通过指针指向V2。

  •   现在我们觉得G1开发成熟了,此时我们将G1合并到master上。首先我们要切换到master中,这样我们才能合并。
git checkout master

  然后我们查看一下状态,只有V1,V2

  接着我们合并G1到master中

git merge G1

  查看状态,相对于没有合并的,现在的主干上多了G1

  • 如果确认G1没有问题之后,我们就可以将分支G1删掉
git branch -d G1
  • 若G2也开发完毕,这是我们也能够将G2合并到master中了。依旧切换到master上,然后合并G2
git merge G2

  此时我们发现出现了一个报错,这说明合并文件出现了冲突。因为我们之前合并过G1,而G1和G2都属于分支,当两个分支都合并到master中时,Git不知道如何将他们合并到一起,所以会产生冲突。

  为什么合并G1不会产生冲突了?这是因为合并G1时,没有其他分支在他之前合并过。

  我们查看代码文件:

  此时,我们手动将他们合并

  最后我们执行版本控制,将他们提交即可

原文地址:https://www.cnblogs.com/missdx/p/12343771.html

时间: 2024-08-30 13:55:53

Git——分支详解的相关文章

Git应用详解第三讲:本地分支的重要操作

前言 前情提要:Git应用详解第二讲:Git删除.修改.撤销操作 分支是git最核心的操作之一,了解分支的基本操作能够大大提高项目开发的效率.这一讲就来介绍一些分支的常见操作及其基本原理. 一.分支概述 在开发当中,往往需要分工合作.比如:小红开发A功能,小明开发B功能,小刚开发C功能.如何才能做到三者并行开发呢?git为我们提供的分支功能就能实现这一需求,如下图所示: 在实际的开发过程中,master分支是用来发布项目稳定版本的.新的功能往往是在一个新建的分支上进行开发,等到新功能开发完毕并经

Git命令详解(一)-个人使用

原文  http://blog.csdn.net/magicharvey/article/details/12431867 本文暂时不会涉及到团队如何使用Git的内容,而是从个人的角度探讨如何用好Git. 约定 绿色的5位字符表示提交的ID,分别指向父节点.分支用橘色显示,分别指向特定的提交.当前分支由附在其上的标识. 这张图片里显示最后5次提交,是最新提交.分支指向此次提交,另一个分支指向祖父提交节点. git cat-file git cat-file -t,查看Git对象的类型,主要的gi

【Git使用详解】Egit的常用操作详解

常用操作 操作 说明 Fetch 从远程获取最新版本到本地,不会自动merge Merge 可以把一个分支标签或某个commit的修改合并现在的分支上 Pull 从远程获取最新版本并merge到本地相当于fetch+merge Push 将本地分支的更新,推送到远程主机 Merge tool 当你的代码产生了冲突可以通过此工具快速的对比 Switch to 将当前分支切换到其它分支或标签 Commit 将更改提交到本地库中 Rebase 可以把在一个分支里提交的改变移到另一个分支里重放一遍 Re

【Git使用详解】Egit使用过程中遇到的问题及解决办法

1.   Git错误non-fast-forward后的冲突解决 问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去.于是你有2个选择方式: 1.强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容 git push –f 如果你用的是Egit则可以在推送界面选择"Force Update All Specs"即可,如下图: 2.先把git的东西fetch到你本地然后merge后再push $ git fet

Git初探--笔记整理和Git命令详解

几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面clone一个项目到本地时(假设项目名为GitTest),在本地就会看到一个名为GitTest的目录,目录下有项目代码和一个名为.git的目录,什么是工作区呢,就是除了.git文件夹以外的所有东西,我们主要在工作区上阅读,修改,添加删除代码和其他内容,而这个.git目录就称为一个版本库,这个版本库中存

【Git使用详解】使用Egit克隆项目到本地图解

第一步:   打开Eclipse的Git视图,在视图中单击"Clone a Git repository" 如图:      第二步:在弹出的Clone Git Repository界面中输入要克隆的库地址,用户名和密码单击下一步. 如图: 第三步:选择要克隆的分支单击下一步 如图: 第四步:选择库的本地存储路径和要初始化的分支单击finish等待进度完成即可. 如图: 第五步:导入库中的项目,在Git视图界面右键库选择"import Projects",在如下界面

iOS开发——开发实战篇&版本控制SVN和Git使用详解

版本控制SVN和Git使用详解 公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的! -----------------svn----------------- 一:最常用基本步骤--- 下载(完整下载,第一次),将服务器的项目下载到本地开始开发 svn checkout ip —uaerbane=? —password=?     //这里需要add 简:co 更新仓库,服务器项目有变动的时候需要更新到本地,以免错误或者冲突 svn updata    

Git应用详解第二讲:Git删除、修改、撤销操作

前言 前情提要:Git应用详解第一讲:Git分区,配置与日志 在第一讲中我们对Git进行了简单的入门介绍,相信聪明的你已经了解Git的基本使用了. 这一讲我们来进一步深入学习Git应用,着重介绍Git的一些常见操作,包括:删除文件.比较文件.撤销修改.修改注释与查看帮助文档. 一.删除文件 1.git rm <file> 该命令用于删除版本库中的文件:删除工作区和暂存区中的文件都会报错: 若用该指令删除工作区中的文件,会报找不到文件的错误: 若用该指令删除暂存区中的文件,报如下错误: 所谓版本

【Git使用详解】EGit使用详解

此系列文章写给那些打算使用Git或正在使用Git,但对Git还不是很理解的程序猿们,希望能帮助大家在学习和使用Git的过程中少走弯路,并以最少的时间和代价来熟悉Git,让Git能够辅助更多的开发者提高开发效率. Ps.使用Git已经很久了,回想当初使用Git的时候可谓是雾里看花,懵懵懂懂,没少犯错误,但我从未畏惧过错误,每一次错误的解决都是对我技术的提升和经验的积累. 下面是此系列文章的目录: [Git使用详解]Egit插件的安装图解 [Git使用详解]使用Egit克隆项目到本地图解 [Git使