Pull Request 成功后继续使用 Develop 分支?

Continue using Develop branch after successful Pull Request?

我有一个非常基本的场景,但我不明白什么是正确的处理方式。

我有一个 Master 分支和一个 Develop 分支

Master 不直接接收提交,我提交开发触发 AWS 代码管道 - 这些已经过测试批准,如果可以,我会发出拉取请求

Pull 请求与 Master 合并(不确定我这样做是否正确,我使用 github 中的变基和合并选项)。

到目前为止一切都很好。

现在我想继续做一些工作,所以我对 Develop 做了更多的承诺,并准备好做一个新的 Pull 请求。我现在的问题是它说它将完成所有提交,因为我最初创建了 Develop 分支,而不仅仅是自 Pull Request 以来的那些。

我可以在每次拉取请求后删除开发并重新制作它,但这会在代码管道中产生错误,我宁愿继续开发,并以某种方式将它们内联。

我不知道遗漏了哪一步,我真的需要一些帮助,我试着在这里和 google 上寻找类似的问题,但没有真正完全匹配的问题。

如果我在这个问题上犯了错误没关系,但继续前进我真的很感激知道正确的步骤来使这个过程顺利进行。

如果这很重要,我正在使用 Github Desktop,但如果需要命令行,那很好。

鉴于此:

master does not receive commits directly, I make commits to develop which triggers an AWS code pipeline - these are tested approved and if ok I make a pull request

我将首先关注以下词语:“这些都经过测试并获得批准 如果没问题...”

这表明如果测试失败,您将修复 develop 并推出您的更改以查看您的修复尝试是否有效。鉴于此,develop 不一定是“好”分支,就像 master 是“好”分支一样。相反,您将 develop 视为 work-in-progress 的“功能”或“主题”分支,直到您正确处理为止。鉴于此,我喜欢你定期重置 develop 的建议,如果你目前是 develop 分支的唯一用户,那么在每次 PR 后重置到 master 是有意义的。关于你的流水线问题:

I could delete develop after each pull request and remake it but this makes an error in code pipeline

并在您的评论中澄清:

The error happens in pipeline because the branch has been deleted so the pipeline tries to run but fails with a message similar to branch not found.

解决这个问题的简单方法是永远不要真正删除 develop 分支。而只是重置它,也许像这样:

git fetch
git switch develop
git reset --hard origin/master
git push --force

这样分支就会一直存在,流水线就不会抱怨找不到分支了。

分支名称提示:尽管分支名称实际上并不重要,只要您(以及您的团队,如果有的话)准确理解它们是什么以及它们是如何工作的,我会考虑将您的 develop 分支重命名为其他名称。分支名称 develop 通常与名为 Git Flow, and in that context the develop branch lives forever and normally would never get reset. Typically testing would be done on feature branches until they are ready, and then they are merged into develop with the goal of always having it be in a "good" state. The workflow you are currently using is more akin to GitHub Flow. In that flow you branch off of master with a relevant named feature branch (e.g. user/b2020/add-new-cool-thing or feature/add-new-cool-thing), and then merge it into master when you're done and delete that branch. Note you may have multiple feature branches going at once, especially if you add more team members. Most testing pipelines will enable you to test multiple branch names, (e.g. feature/* or user/*, etc.), but if you want to lock down to a specific branch name, I would suggest calling it next, which is what the maintainers of Git call their short-lived test branch in gitworkflow 的工作流程相关联。如果您有多个开发人员,每个人仍然会从 master 中创建功能分支,但首先将它们合并到 next 中进行测试,然后再完成合并到 master 中。然后在有意义的时候定期重置 next 。如果你愿意,你可以在每次 PR 之后做;在我的公司,我们目前每周一早上都这样做。现在,如果您只喜欢在一个分支上工作,请考虑将您的 develop 分支重命名为 next,并且您可以直接提交,直到您有其他团队成员,或者直到您决定在多个分支上工作并行的功能。当您重命名分支时,如果您愿意,也可以将 master 重命名为 main