关键词:
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生产一个新的commit,这样,从分支历史上就可以看出分支信息。
下面我们实战一下--no-ff方式的git merge:
首先,仍然创建并切换dev分支:
$ git checkout -b dev
Switched to a new branch ‘dev‘
修改readme.txt文件,并提交一个新的commit:
$ git add readme.txt
$ git commit -m "add merge"
[dev 45e3302] add merge
1 file changed, 1 insertion(+), 1 deletion(-)
现在,我们切换回master:
$ git checkout master
Switched to branch ‘master‘
Your branch is ahead of ‘origin/master‘ by 4 commits.
(use "git push" to publish your local commits)
准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward:
$ git merge --no-ff -m "merge with no-ff" dev
Merge made by the ‘recursive‘ strategy.
readme.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。
合并后,我们用git log看看分支历史:
$ git log --graph --pretty=oneline --abbrev-commit
* 819865d (HEAD -> master) merge with no-ff
|
| * 45e3302 (dev) add merge
|/
* 20864c0 confict fixed
|
| * ab1c693 AND simple
* | ea364c9 & simple
|/
* 3d9a6be branch test
* d255aa7 (origin/master) LICENSE
* 4e28fb6 readme.txt
可以看到,不使用Fast forward模式,merge后就像这样:
分支策略
在实际开发中,我们应该按照几个基本原则进行分支管理
首先,master分支应该是非常稳定的,也就是仅用发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支上发布1.0版本。
你和你的小伙伴每个人都在dev分支上干活,每个人都有自己的分支。时不时地往dev分支上合并就可以了。
所以,团队合作的分支看起来就像这样:
摘抄自:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013758410364457b9e3d821f4244beb0fd69c61a185ae0000
git----分支管理之bug分支04
...bug就像家常便饭一样,有了bug就需要修复,在Git中,由于分支是如此强大,所以,每个bug都可以通过一个临时分支来修复,修复后,合并分支,然后将临时分支删除。 当你接到一个修复一个代号101的bug任务时,很自然地,你... 查看详情
git分支管理策略
Git分支管理策略 如果你严肃对待编程,就必定会使用"版本管理系统"(VersionControlSystem)。眼下最流行的"版本管理系统",非Git莫属。相比同类软件,Git有很多优点。其中很显著的一点,就是版本的分支(branch)和合并(merge... 查看详情
[git]3_分支管理(代码片段)
目录创建与合并分支解决冲突分支管理策略不使用Fastforward模式分支策略Bug分支Feature分支学习资源来自廖雪峰的Git教程本文简短记忆学习内容,主要是使用命令,方便以后查看,完整学习请查看廖雪峰Git教程操作过程在Ubuntu18.04... 查看详情
git企业中常用分支管理策略(代码片段)
Git企业中常用分支管理策略一般企业中开发一个项目的分支策略主分支master开发分支develop功能分支feature预发布分支 releasebug分支fixbug其它分支other主分支master代码库应该有一个、且仅有一个主分支。所有提供给用户使用的... 查看详情
git工程开发实践——git分支管理策略(代码片段)
Git工程开发实践(四)——Git分支管理策略一、Git版本管理的挑战Git是非常优秀的版本管理工具,但面对版本管理依然有非常大得挑战。工程开发中,开发者彼此的代码协作必然带来很多问题和挑战:A、如何开始一个Feature开发... 查看详情
git分支管理分支管理策略不使用fastforward模式进行合并(代码片段)
通常,合并分支时,如果可能,Git会用Fastforward模式,但这种模式下,删除分支后,会丢掉分支信息。 如果要强制禁用Fastforward模式,Git就会在merge时生成一个新的commit, 这样,从分支历史上就可以看出分支... 查看详情
[廖雪峰]git分支管理策略
通常,合并分支时,如果可能,Git会用 Fastforward 模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制 禁用 Fastforward 模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支... 查看详情
git分支管理策略
Git教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 如果你严肃对待编程,就必定会使用"版本管理系统"(VersionControlSystem)。眼下最流行的"版本管理系统",非Git莫属。相比同类软件,Git有很多优点... 查看详情
git学习6--分支管理策略,bug分支
1.准备合并dev分支,请注意--no-ff参数,表示禁用Fastforward:$gitmerge--no-ff-m"mergewithno-ff"devMergemadebythe‘recursive‘strategy.readme.txt|1+1filechanged,1insertion(+)合并后,我们用gitlog看看分支历史:$gitlog--graph--pretty=onelin 查看详情
git入门:创建合并分支解决冲突分支管理策略
分支创建与合并理解:相当于创建多一个与现在一模一样的平行时空在这基础上继续干活但其实并不会影响到当前时空,合并时再决定A时空并入B时空还是B时空并入A和空查看分支gitbranch;创建分支gitbranch‘分支名‘切换分支gitchec... 查看详情
如何对git的分支进行管理
...使用Git,也正是由于其方便性,如果团队没有一个统一的分支管理策略,那么分支可能会非常混乱,开发者将因此花费额外的时间处理这方面的问题。在搜索引擎上搜索分支管理策略,大部分都指向VincentDriessen提出的策略。我这... 查看详情
git系列四之分支管理
Git系列四之分支管理2017-03-02 分类:Git 阅读(1175) 评论(1)来自为知笔记(Wiz) 查看详情
git分支管理策略
在项目中推荐的Git分支管理策略介绍:主分支Master永久分支首先,代码库应该有一个、且仅有一个主分支Master。项目的正式版本,都在这个主分支上发布。它是自动建立的,版本库初始化以后,默认就是在Master分支进行开发。功... 查看详情
git之分支管理(代码片段)
创建和合并分支head指向当前分支创建分支并切换$gitcheckout-b<branch>等价于$gitbranch<branch>$gitcheckout<branch>dev分支提交一次更改把指定分支合并到当前分支上$gitmerge<branch>删除分支$gitbranch-d<branch>禁用Fastforward模... 查看详情
git分支管理之创建与合并分支
...提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是... 查看详情
git由浅入深之分支管理
几乎所有的版本控制系统都以分支的方式进行操作,分支是独立于项目主线的一条支线,我们可以在不影响主线代码的情况下,在分支下进行工作。对于传统的一些版本控制工具来说,我们通常需要花费比较多的时间拷贝主线代... 查看详情
jenkins持续集成之git分支管理
分支的用法通常一个项目里面会有最基本的:master(主)、dev(开发)、test(测试)三个分支,在整个项目程序发布的过程中,dev分支开发完成之后,会把dev分支合并到test分支,然后测试人员对该程序功能进行测试,如测试功能,再由t... 查看详情
产品管理开发之git工作流和分支规范推荐
...了开发效率和产品的交付频率。本篇,针对Git的工作流和分支使用,进行了一些推荐。 目录1 产品管理开发之Git工作流和分支规范推荐1.1 Git工作流模型推荐1.2 & 查看详情