【问题标题】:Publishing a feature branch to preview periodically in git发布功能分支以在 git 中定期预览
【发布时间】:2011-10-10 15:17:01
【问题描述】:

我正在尝试了解偶尔将功能分支发布到 git 预览分支的最佳方式。这是我的设置:

  1. 客户要求功能。
  2. 我开发了初始功能并发布到预览/测试站点。
  3. 客户提供反馈。
  4. 我做了更多的改变。
  5. 重复步骤 3 几次。
  6. 客户端很适合使用功能
  7. 将功能变基为推送到生产站点的单个提交。

请注意,可能会同时开发多种不同的功能,并且只有一个“预览”站点,客户可以在其中看到所有正在开发的功能。我目前的 git 工作流程。

git checkout -b new_feature
...hack hack hack...
git add .
git commit -m "WIP"
git checkout preview
git merge new_feature
... feedback and another feature got approved and merged with master ...
git checkout new_feature
git merge master
... hack hack hack...
git add .
git commit -m "WIP"
git checkout preview
git merge new_feature
... client approves work for release ....
git checkout new_feature
git rebase -i master
... squash all commits except the first which I reword with a good description...
git checkout master
git merge new_feature
git branch -d new_feature
git checkout preview
git merge master
git checkout master

所以最终结果:

  1. 我能够在它自己的独立分支中开发该功能,并在它投入生产时进行控制。它还在生产中作为一个很好的整洁提交进行了汇总。
  2. 客户可以看到我开发的功能并提供反馈。他们还可以看到该功能以及我同时开发的其他功能。
  3. “预览”分支变得有点混乱,因为它同时获得了“WIP”提交和最终的重新定位提交。但我并不介意,因为它只是用于客户端预览,如果我愿意,我可以定期删除分支并从 master 重新创建。

我唯一的问题是我遇到的冲突似乎比我预期的要多。我认为这是因为分期同时获得了开发提交和最终提交。我也想知道是否有更好的方法来做到这一点?

【问题讨论】:

  • 切换预览存储库以使其位于 new_feature 分支上怎么样?这样你就不需要一直合并了。
  • Preview 将显示几个正在开发的不同功能。所以我希望预览是所有正在进行的工作的合并。

标签: git preview feature-branch


【解决方案1】:

您的工作流程看起来不错,但我不喜欢在与 master 合并之前从您的功能分支中压缩所有提交。

在我看来,这不会增加任何价值,而且您会丢失有关功能演变的潜在重要信息。

当我合并时,我使用git merge --no-ff new_feature。这会保留有关功能分支是否存在的信息,以便您一眼就能知道每个功能中的哪些提交:

图片来源-A successful Git branching model

【讨论】:

  • 感谢您的建议。对我来说,变基可以让我放弃很多不重要的事情,并在历史中清楚地看到每个添加的功能。对我来说,我宁愿看到: -------- 1. 实现的功能 foo -------- 而不是: -------- 1. 启动功能 foo 2. 恢复功能 foo 的一部分3. 在提交中忘记文件 4. 删除错误 5. 终于完成了功能 foo 6. 忘记了功能 foo 的 X --------- 看起来更清晰易懂。我想对我来说,所有这些小提交都只是“正在进行的工作”,并且对跟踪并不重要。
  • @Eric 以我的经验,当您的最终用户决定他们想要添加该功能时,像“2. Reverted part of feature foo”这样的提交非常有用。不管对你有用,没有任何一种正确的方式来使用 git。
猜你喜欢
  • 2014-07-01
  • 2020-12-22
  • 2012-03-24
  • 1970-01-01
  • 1970-01-01
  • 2015-11-18
  • 2012-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多