让我们说我们在git中有以下情况:
创建的存储库:
mkdir GitTest2
cd GitTest2
git init
Run Code Online (Sandbox Code Playgroud)主服务器中的一些修改发生并得到提交.
echo "On Master" > file
git commit -a -m "Initial commit"
Run Code Online (Sandbox Code Playgroud)Feature1分支主,一些工作完成:
git branch feature1
git checkout feature1
echo "Feature1" > featureFile
git commit -a -m "Commit for feature1"
Run Code Online (Sandbox Code Playgroud)同时,在主代码中发现错误并建立了修补程序分支
git checkout master
git branch hotfix1
git checkout hotfix1
Run Code Online (Sandbox Code Playgroud)该错误在修补程序分支中修复并合并回主服务器(可能在拉取请求/代码审查之后):
echo "Bugfix" > bugfixFile
git commit -a -m "Bugfix Commit"
git checkout master
git merge --no-ff hotfix1
Run Code Online (Sandbox Code Playgroud)feature1的开发继续:
git checkout feature1
Run Code Online (Sandbox Code Playgroud)现在我的问题:说我需要我的功能分支中的修补程序,可能是因为那里也出现了错误.如何在不将提交复制到我的功能分支的情况下实现此目的?我想阻止在我的功能分支上获得两个与功能实现无关的新提交.如果我使用Pull请求,这对我来说尤其重要:所有这些提交也将包含在Pull Request中,并且必须进行审核,尽管已经完成(因为修补程序已经在主服务器中).
我做不到git merge master --ff-only:"致命:不可能快进,堕胎."但我不确定这是否对我有所帮助.
我有两个分支:master和dev
我想从dev分支创建一个"功能分支" .
目前在分支开发,我做:
$ git checkout -b myfeature dev
Run Code Online (Sandbox Code Playgroud)
... (一些工作)
$ git commit -am "blablabla"
$ git push origin myfeature
Run Code Online (Sandbox Code Playgroud)
但是,在对我的树枝进行可视化之后,我得到了:
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
Run Code Online (Sandbox Code Playgroud)
我的意思是分支似乎合并了,我不明白为什么......
我做错了什么?
请问您如何解释我如何从另一个分支分支并推回到功能分支的远程存储库?
所有这些都在分支模型中,就像这里描述的那样.
我们的开发团队一直在使用GitFlow分支策略,它一直很棒!
最近我们招募了一些测试人员来提高我们的软件质量.这个想法是每个功能都应该由测试人员测试/ QA.
过去,开发人员在单独的功能分支上处理功能,并develop在完成后将它们合并回分支.开发人员将在该feature分支上自行测试他的工作.现在有了测试人员,我们开始问这个问题
测试人员应该在哪个分支上测试新功能?
显然,有两种选择:
develop树枝上最初,我们相信这是肯定的方法,因为:
develop自开发开始以来,该功能已与所有其他功能合并到分支进行测试.develop).他不需要向开发人员询问哪个分支是针对哪个功能的(功能分支是由相关开发人员独立管理的个人分支)最大的问题是:
该develop分支被污染与臭虫.
当测试人员发现错误或冲突时,他会将它们报告给开发人员,开发人员会在开发分支上修复问题(功能分支在合并后被放弃),之后可能需要更多修复.多个子序列提交或合并(如果develop再次在分支上重新创建分支以修复错误),develop如果可能的话,从分支回滚功能非常困难.develop在不同时间有多个功能合并到分支并在其上固定.当我们想要创建仅包含develop分支中某些功能的版本时,这会产生一个大问题
所以我们再次思考并决定我们应该在功能分支上测试功能.在我们测试之前,我们将更改从develop分支合并到功能分支(赶上develop分支).这很好:
develop分支;但是,存在一些缺点
develop分支.这意味着,develop无论如何,当两个功能都合并到开发分支时,您将不得不再次测试分支.你必须记得将来测试这个.以上是我们的故事.由于资源有限,我想避免在所有地方进行测试.我们仍在寻找更好的方法来应对这种情况.我很想知道其他团队如何应对这种情况.
我在各种git flow相关网站上看到了多个矛盾的定义.是否有官方推荐或单一事实来源?
分支机构:release-1.2.3或release-v1.2.3
标签:1.2.3或v1.2.3
嘿,我刚刚将Mac上的Sourcetree更新为最新版本(2.2).git-flow去哪儿了?
我该如何重新启用此功能?
我没有它就迷失了自己!
我已经使用git flow了一段时间了.我很想知道具体的用例.
对于我的一个项目,我有一个新网站功能的门票.此票证取决于许多子任务.我想为主故障单创建一个功能分支,然后为每个子任务创建一个父功能分支的功能分支.
我们假设我有一张PROJ-500票,我为它创建了一个功能分支
git flow feature start PROJ-500
Run Code Online (Sandbox Code Playgroud)
然后我想整合门票PROJ-501通过PROJ-515到PROJ-500整个事情纳入前develop.有没有办法让我做类似的事情
git flow feature start PROJ-511 -b PROJ-500
Run Code Online (Sandbox Code Playgroud)
然后超时这些子任务完成,当他们的功能完成时,分支被合并到PROJ-500.
git flow feature finish PROJ-511
Run Code Online (Sandbox Code Playgroud)
上面的命令将合并PROJ-511到PROJ-500
一旦所有子任务完成,那么PROJ-500将完成并合并到develop.
通过这种方式,新网站功能可以集成到单个单元而不是零碎的单元中.
我是Git的新手,我计划在发现GitHub中的一个小错误之后为GitHub上的一些开源项目做出贡献.在分叉并修复错误后,我提出了一个拉取请求,我注意到了这一点:
失败 - Travis CI构建失败
查看详细信息,我发现它是由Could not find .travis.yml,由于我没有登录Travis Cl并将.travis.yml添加到存储库,因此非常有意义.
这是我第一次听说特拉维斯以及所谓的持续整合.这听起来很酷,所以为了更多地了解它,我在维基百科上查了一下.
Travis CI是一种托管的分布式持续集成服务,用于构建和测试GitHub上托管的项目.Travis CI会自动检测何时提交并推送到使用Travis CI的GitHub存储库,每次发生这种情况时,它都会尝试构建项目并运行测试.这包括对所有分支的提交,而不仅仅是对主分支的提交.
我目前对Travis CI的理解是它所做的是自动推动项目git commit -am "..",我不太了解它的某些部分.
通过构建项目并运行测试,它将运行哪些测试?它如何"构建"该项目?(比如把它编译成二进制文件?)
它声明"这包括对所有分支的提交" - 但是如果我不想承诺所有分支怎么办?
如果我根本不使用Travis Cl,那好吗?在什么情况下最好使用它(或必须使用它)?
我们正在尝试采用git-flow实现的成功的Git分支模型.现在,我们正在开发至少两个发布分支,一个用于最新的稳定版本,另一个用于下一个("预览")版本.我不明白为什么所有版本似乎都"线性化"到主人并在那里标记.为什么不在发布分支中标记发行版?为什么大师呢?或者为什么开发分支而不是使用master呢?
git-flow ×10
git ×8
git-branch ×2
branch ×1
git-workflow ×1
gitlab ×1
hotfix ×1
qa ×1
testing ×1
travis-ci ×1