【问题标题】:How can I branch from another branch, then delete origin branch?如何从另一个分支分支,然后删除源分支?
【发布时间】:2020-11-19 03:34:01
【问题描述】:

我有两个主要分支:masterdevelop

我通常的新功能工作流程是:

  1. 从开发创建一个新分支:git checkout -b <myfeature> develop
  2. 编码和测试功能
  3. 提交更改:git commit -a -m "<message>"
  4. 改回开发:git checkout develop
  5. 将该功能重新合并到开发中:git merge --no-ff <myfeature>
  6. 删除分支:git branch -d <myfeature>
  7. 将开发推送到远程:git push origin develop

现在我需要开发一个需要当前功能的新功能。我的新工作流程是:

  1. 从开发创建一个新分支:git checkout -b <myfeature> develop
  2. 编码和测试功能
  3. 提交更改:git commit -a -m "<message>"
  4. QA 目前正在验证
  5. 从 myfeature 创建一个新分支:git checkout -b <newfeature> <myfeature>
  6. 开始编写新功能
  7. QA 完成验证,提交当前代码:git commit -a -m "<message>"
  8. 改回开发:git checkout develop
  9. 将该功能重新合并到开发中:git merge --no-ff <myfeature>
  10. 删除分支:git branch -d <myfeature>
  11. 将开发推送到远程:git push origin develop
  12. 改回新功能:git checkout newfeature
  13. 完成新功能的编码
  14. 提交更改:git commit -a -m "<message>"
  15. 改回开发:git checkout develop
  16. 将该功能重新合并到开发中:git merge --no-ff <newfeature>
  17. 删除分支:git branch -d <newfeature>
  18. 将开发推送到远程:git push origin develop

这是一个正确的工作流程吗?在步骤 10 中删除分支是否有任何影响(即它是否孤立新功能?)?

原始指南来自Vincent Driessen's A successful Git branching model。我还阅读了Create a branch in Git from another branch,但它并没有真正删除产生新分支的分支。

【问题讨论】:

  • 如果你不做拉取请求,你的功能分支有什么意义?

标签: git


【解决方案1】:

没有错。

请务必谨慎管理这些状态。可以说。您在 A 上工作并克隆 B。但是在业务发现他们想要更改的内容之后,您需要对 A 进行一些更改。如果您推送 A 并希望现在在 B 中进行这些更改,则 git merge 可能会导致重复提交。而是使用 git rebase。

我只从事基于主干的开发工作。 https://trunkbaseddevelopment.com/

【讨论】:

    【解决方案2】:

    这是一个正确的工作流程吗?

    这取决于您想要实现的目标。有许多可能的工作流程。

    在步骤 10 中删除分支是否有任何影响(即它是否孤立新功能?)?

    分支只是指向提交的指针,它们不相互依赖。删除一个分支,删除该图的入口点,但它不会自行删除提交。只要您有办法从另一个分支返回到该提交,这些提交就永远不会被删除。

    【讨论】:

      猜你喜欢
      • 2022-06-13
      • 1970-01-01
      • 2011-07-15
      • 1970-01-01
      • 2021-05-04
      • 2013-11-04
      • 1970-01-01
      • 2011-08-02
      • 2021-04-17
      相关资源
      最近更新 更多