`
阿尔萨斯
  • 浏览: 4169350 次
社区版块
存档分类
最新评论

Git学习系列(六)解决分支冲突及分支管理策略

 
阅读更多

解决分支冲突

通常当Git无法自动合并分支时,就必须首先解决冲突后,再提交。

下面咱们先创建一个分支并切换到b1分支:


修改咱们之前的hellogit.txt内容,添加一行:Create a new named f1 branch


查看该文件的状态,并提交至本地仓库:


然后切换至master分支:


然后在master分支上把hellogit.txt文件的最后一行改为:switch to master.

最后在master分支上提交:


现在,master分支和b1分支各自都有自己新的提交,这种情况下,Git无法执行想上一章一样进行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突。


Git告诉我们,hellogit.txt文件存在冲突,必须手动解决冲突后再提交,通过git status可以告诉我们冲突详情:


可以看到hellogit.txt在两个分支上都没修改且这两个分支没有merge,下面来看看helligit.txt的内容:


Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存:Create a new named f1 branch;再提交:


好了冲突已经解决并提交了,那么现在就可以删除b1分支了:


小结:当Git无法自动合并分支时,就必须首先解决冲突后,再提交。


分支管理策略:

现在我们仍然创建并切换至b1分支:


然后修改一下hellogit.txt的内容,再提交:


然后回到master主分支上:


这时,我们merge加上两个参数:--no-ff参数(表示禁用“Fast forward”),-m(和comimt一样,为merge新提交时的信息):
使用--no-ff好处是:能看出来哪些分支曾经做过合并。


合并后,我们用git log看看分支历史:


小结:合并分支时,Git会默认使用“Fast forward”模式,但这种模式下,删除分支后,会丢掉分支信息。
在实际工作中,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面进行开发,一般都是依赖(你和你的同事)各自的分支去进行新的feature开发或解决新的bug,有需要的时候再merge一下就可以了。

分享到:
评论

相关推荐

    Git的使用文档--分支管理与冲突解决

    Git服务器从搭建到使用,很详细~这个是分支管理与冲突解决

    史上最全的git解决冲突

    史上最全的eclipes git解决冲突方法,快来下载下载!!!!

    idea+git合并分支解决冲突及详解步骤

    主要介绍了idea+git合并分支解决冲突及详解步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Git 版本管理 8 分支冲突 (merge) (教学 教程 tutorial)

    Git_版本管理_#8_分支冲突_(merge)_(教学_教程_tutorial)

    Git分支合并冲突解决的方法实现

    主要介绍了Git分支合并冲突解决的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    git协同冲突解决1

    1.不同人修改了不同的文件 a.账户A,账户B分别从远端拉取了相同分支 b.账户A修改了main.cpp文件后提交到远端,账户B修改fun.cpp文

    Git 版本管理 9 分支冲突 (rebase) (教学 教程 tutorial)

    Git_版本管理_#9_分支冲突_(rebase)_(教学_教程_tutorial)

    git分支操作.txt

    gti详细的分支操作,在git中,可以使用git merge 和git rebase两个命令来进行分支的合并。 git merge 和git rebase在大体上都差不多,下文主要以git merge来例来讲解分支的合并流程。 如果你想了解分支合并的更多...

    Git权威指南PDF完整版

    26.2.1 Git 库配置文件的扩展及分支映射/ 387 26.2.2 Git工作分支和 Subversion 如何对应/ 388 26.2.3 其他辅助文件/ 390 26.3 多样的 git-svn 克隆模式/ 390 26.4 共享 git-svn 的克隆库/ 393 26.5 git-svn 的局限/...

    Git-1.8.chm Git-1.8英文API Git文档工具

    Git的功能特性:  从一般开发者的角度来看git有以下功能:  1:从服务器上克隆... 8:一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。 Git API下载

    Git教程——merge 分支冲突

    文章目录1.merge 分支冲突 1.merge 分支冲突 今天的情况是这样, 想象不仅有人在做开发版 dev 的更新, 还有人在修改 master 中的一些 bug. 当我们再 merge dev 的时候, 冲突就来了. 因为 git 不知道应该怎么处理 ...

    基于Git的软件项目管理配置方法及应用实践.pdf

    :Git分布式特性和分支管理能力适用于大型软件项目,每个分支彼此独立,互不影响。为提高碳化硅外延设备控制系统的精 度、实时性、稳定性,提出一种基于Git进行配置管理的方法。介绍Git的特点、环境配置和常用操作;...

    Git&GitHub;学习笔记

    协同修改  多人并行不悖的修改服务器端的同一个文件。  数据备份  不仅保存目录和文件的当前状态,还能够保存每一个提交过... 分支管理  允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。

    vim-merginal, 用于管理和合并Git分支的逃犯扩展.zip

    vim-merginal, 用于管理和合并Git分支的逃犯扩展 简介Merginal为处理Git分支提供了一个不错的inteface 。 它提供交互式的TUI用于:查看分支列表从该列表签出分支创建新分支删除分支合并分支分支分支解决合并冲突遥控...

    Git使用手册.pdf

    8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。 从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能: 1、查看邮件或者通过其它方式...

    Git基础用法

    Git基础用法 1 一、 Git是什么 1 二、 SVN与Git的最主要的区别 1 三、 安装Git 2 1、 Windows下安装git 2 2、 mac下安装git 2 ...3、 分支管理策略 24 4、Bug处理 26 5、 多人协作 29 五、 git基础命令 33

    TortoiseGit用户手册中文

    1 安装MsysGit 1 2 安装TortoiseGit 6 3 配置TortoiseGit 6 ...6 Git分支管理策略 25 6.1 Master分支(主分支) 26 6.2开发分支Develop 26 6.3 临时性分支 26 功能分支 27 预发布分支 27 修补Bug分支 27

    Git介绍与使用-培训专用课程PPT

    初始化仓库、克隆项目、添加文件到暂存区、查看仓库当前状态、比较文件不同、提交修改、回退版本(包含清理分支和常用组合操作命令)、删除工作区文件、查看提交记录、远程操作、拉取与合并代码、管理分支(分支操作...

    计算机专业面试可能会遇到的问题

    技术问题准备 git: git init 初始化当前目录作为本地仓库 git add . 将工作目录下文件传到暂存区(刚创建的文件git status 会显示未...解决冲突:两或多个分支编写同一个文件(会报错自行到报错文件选择一个版本留下)

    Git gui(git客户端)64位 v2.12.0.zip

    Git gui(git客户端)64位是免费、开源的分布式版本控制系统,用于Linux内核开发的版本控制工具,GUI的方便快捷,也不用记忆冗杂的命令,这里为大家分享的是Windows下的GIT客户端,有需要的赶快下载吧! Git是简单易学...

Global site tag (gtag.js) - Google Analytics