如何通过 Pull Request 工作流程使用 Github 发布功能

How to use Github releases feature using Pull Request workflow

我在 Github 有一个项目,所有团队都使用 Pull Request 工作流程。因此每个开发人员都有一个主存储库的 Fork。

新增功能问题的解决流程如下:

  1. 开发人员在他的本地存储库中创建了一个分支(来自 master 的分支)
  2. 开发人员开始处理问题的工单
  3. 开发人员完成工单后,他将更改提交到他的本地仓库并将更改推送到他在 Github
  4. 中的 Fork
  5. 然后,他从那个分支请求一个 Pull Request 给 Master
  6. 团队负责人访问主存储库并验证合并请求并接受更改并将其合并到主存储库。

当我们要发布时,发布的代码来自 Master 存储库,但我们希望将 Master 中的代码作为基线,这样任何其他 Pull Request 都不会被接受并合并到 Master 中更改我们要发布的代码。

Does releases functionality from Github is something we can use to take a copy of Master repo code at some point and keep that code unchanged even if some new Pull Request is merged into master?

为了回答您的问题,是的,您可以通过发布来做到这一点。 GitHub 版本实际上只是 git 标签。您不能(据我所知)创建带有 PR 的版本,但您可以使用标签:

$ git checkout master
$ git pull origin master
$ git tag v1.2.3
$ git push origin master --tags

您现在将在 GitHub 的 "Releases" 部分看到 v1.2.3。您可以编辑它以使其更详细、附加二进制文件等。

标签不像分支那样工作,但如果需要,您可以轻松地从标签创建分支。

确保您已获取标签:

git fetch --all --tags --prune

然后检查标签并创建一个新分支:

git checkout tags/<tag_name> -b <branch_name>