最近,我似乎有这样一个重复的场景,即正在开发多个功能分支,其中一个功能分支(feature-b如下图所示)取决于另一个未完成功能(开发中feature-a)的支持:
---o---o--o master
|
+---o---o---o feature-a
|
+----o---o feature-b
Run Code Online (Sandbox Code Playgroud)
每当我修改feature-a(包括交互式重定基以修复功能的错误),我需要重订feature-b到feature-a.这些是本地分支,所以我可以随意修改它们.
我经常遇到以下情况:
master testing
---o---o--o-------------------------------------------o---o
| feature-a . .
+---o---o---o . .
| feature-b . .
+----o---o ..................... .
| feature-c .
+----o---o .......................
Run Code Online (Sandbox Code Playgroud)
其中测试分支是正在开发的所有(相关)特征的组合,通过合并其上的所有相关特征分支(在图片master中feature-b,feature-c- 和暗示feature-a)产生.
目前,特别是如果有更复杂的功能分支关系,我gitk一直打开可视化分支关系,并维护shell脚本自动执行此变基,但这种方法似乎很脆弱,而且是一般的麻烦.我想知道的是:
feature-a通过衍合或添加新提交的头部,进行自动重订feature-b上新的负责人feature-a).我目前正在尝试建立TeamCity来构建所有不属于我团队主要分支的分支机构.我无法使其工作,并且只使用默认分支运行.我们的存储库具有以下分支:master,Daily-build,Branch-Alex和其他具有相似名称的分支.我非常希望这个构建配置在不包含master的推送上运行.以下是我配置的一些图片:



TL:DR - 在团队城市设置功能分支建设是否有更好的教程?
奖励积分 - 如何使名称只是分支名称而不是"ref/heads/Daily-build"?
假设我有一个名为的功能分支FeatureA,它与development它所基于的(远程)不同步.通常我会通过调用git rebase development(在origin/development自然地同步我的本地开发之后)来修改我的分支.
今天,我做了不同的事情,并git pull --rebase origin development从我的功能分支调用.现在,有什么区别?
我的“远程”服务器上有很多 GIT 分支。
这个答案很好,但它并没有让我一直在那里。 如何删除所有已合并的 Git 分支?
您能否包括合并中的 master/develop 分支?我如何为此添加时间间隔?
git branch -r --merged | grep -v master | sed 's/origin\///' | xargs -n 1 git push --delete origin
Run Code Online (Sandbox Code Playgroud) 我正在努力在我公司实施Git Flow分支策略,为此我正在测试SourceTree GitFlow中提供的所有可能选项.
到目前为止我遇到的两个问题:
我正在尝试通过选择具有值的指定提交来启动新功能分支,但是它失败并出现以下错误sh.exe C:\ Users\useraname\AppData\Local\Atlassian\SourceTree\gitflow_local\gitflow\git-flow功能启动checkingfeaturebycommit d14c9a9a35d504958e3df6b42db5acfc8466bfd4致命:基地'd14c9a9a35d504958e3df6b42db5acfc8466bfd4'需要是一个分支.它不存在,是必需的.完成但有错误,请参见上文.
启动功能"工作副本父"时第二个选项的含义是什么,因为当我尝试通过选择此选项启动功能时,它也失败并出现相同的错误.
请帮助我理解这些,如果我做错了,请告诉我.
$ git flow release start releasefromcommit 35ec45c01872212ad5f33e068c984def5d18a284
Fatal: Base '35ec45c01872212ad5f33e068c984def5d18a284' needs to be a branch. It does not exist and is required.
Run Code Online (Sandbox Code Playgroud) 我有以下场景:
开发人员完成工作后,他会在开发分支上创建拉取请求。批准后,我们将功能分支压缩合并到开发分支,以便不包括开发人员在功能分支上所做的所有提交。这使我们能够在开发分支上拥有清晰干净的 git 历史记录。
有时功能分支需要从 develop 分支变基,这就是麻烦的开始。
如何避免这种情况,以便 PR 仅包含来自功能分支的实际提交?
我有两个功能分支:"FeatureA"和"FeatureB".FeatureA已完成,但尚未合并到主干,因为尚未确认它是否应该在下一个版本中进行.
FeatureB正在进行中,事实证明需要对dbml实际应用于FeatureA的一些更改.
我有几个选项,其中一个是仅合并dbml和相关文件.我知道最佳实践是从工作副本根合并/更新/提交等,但是如果我要继续进行会导致什么问题呢?
我正在与一个团队一起使用 Git Flow。我们都从功能开发中分支出来,并在代码审查后合并回来。它对我们来说效果很好,但是我们现在有一个功能需要开发人员一个多月才能完成。这段时间我们将发布一些版本。
有几个问题可以推动这一点:
我正在使用svn版本控制并有以下问题:
假设我在我的feature branch不断上游的变化中开发了一些东西trunk (通过简单地合并它们并解决冲突)。现在,在某个时刻,我进行了最后一次上游合并trunk并解决了冲突。并且,例如,在那之后merge我以某种方式设法“冻结”trunk - 所有提交都被trunk拒绝,并且它始终保持在相同的状态。
这是否可以保证我执行merge --reintegratefor my时不会发生冲突feature branch?或者我错过了一些可能导致它们的其他条件和行动?
我正在开发一个开发分支和两个不同的(本地)功能分支.
a -- b -- e <-- develop
\ \
\ f -- g <-- feature-branch-1
\
c -- d <-- feature-branch-2
Run Code Online (Sandbox Code Playgroud)
我通过运行将来自feature-branch-1的更改合并到feature-branch-2中
git checkout feature-branch-2
git rebase feature-branch-1
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,它现在看起来像这样:
a -- b -- e <-- develop
|\
| f -- g <-- feature-branch-1
\
f -- g -- c -- d <-- feature-branch-2
Run Code Online (Sandbox Code Playgroud)
然而,我意识到我在分支1中引入了一个我不知道如何修复的错误.所以这个错误现在也在分支2中,并阻止我将feature-branch-2合并到develop中.我想回到原来的状态
a -- b -- e <-- develop
\ \
\ f -- g <-- feature-branch-1
\
c -- d <-- feature-branch-2
Run Code Online (Sandbox Code Playgroud)
这样我就可以安全地将feature-branch-2合并到develop中.我怎样才能做到这一点?
feature-branch ×10
git ×8
git-flow ×2
git-rebase ×2
merge ×2
svn ×2
branch ×1
conflict ×1
git-merge ×1
git-squash ×1
github ×1
rebase ×1
teamcity-8.0 ×1
version ×1
workflow ×1