GitHub可以自动合并分支吗?

Kra*_*ram 33 git github

每当任何更改提交给master时,我们都希望自动从master转换到另一个长期分支(此时,这是一个手动过程,人们忘了)

我感谢由于合并冲突,它可能并非总是可能,但如果可能,我们希望它自动发生.

这可能吗?

Clu*_*ter 11

自 2019 年 8 月 13 日起您可以使用 GitHub Actions

此方法会将您的分支与主分支合并,而无需手动创建拉取请求。

只需在您的存储库中创建.github/workflows/automerge.yml包含以下内容的文件:

name: Automerge

on:
  workflow_dispatch:
  schedule:
    # You can setup schedule here
    - cron: '0 0 * * *'

env:
  # replace "github_username" with your GitHub username
  # replace "github.com/username/repo.git" with your GitHub repo path
  # do NOT replace ${{secrets.GITHUB_TOKEN}}, GitHub will take care of it
  MY_REPO: https://github_username:${{secrets.GITHUB_TOKEN}}@github.com/username/repo.git

  # replace "long-lived_branch_name" with your branch name
  MY_BRANCH: long-lived_branch_name

  # replace it with the path to master repo
  MASTER_REPO: https://github.com/username/master_repo.git

  # replace "master" with your master branch name
  MASTER_BRANCH: master

jobs:
  merge:
    runs-on: ubuntu-latest

    steps:
    - name: Merge with master
      run: |
        git clone ${{env.MY_REPO}} -b ${{env.MY_BRANCH}} tmp
        cd tmp
        git config user.name "Automerge Bot"
        git config user.email "bot@example.com"
        git config pull.rebase false
        git pull ${{env.MASTER_REPO}} ${{env.MASTER_BRANCH}}
        git push

Run Code Online (Sandbox Code Playgroud)
  • 将“github_username”替换为您的 GitHub 用户名
  • 将“github.com/username/repo.git”替换为您的 GitHub 存储库路径
  • 将“long-lived_branch_name”替换为您的分支名称
  • 将“master”替换为您的主分支名称
  • 编辑“cron”行来调整计划

另外,不要忘记在存储库的“操作”页面上启用此工作流程。您也可以手动运行它。如果合并失败,您将收到一封来自 GitHub 的电子邮件。

  • 这很好用!我唯一改变的是“打开”使用“推送”触发器,以便每次将更改推送到主控时它都会自动运行 (3认同)

Tom*_*uba 7

自 2020-12-16 起可用

2 天前在 GitHub Universe 上引入了原生 GitHub Auto-Merge。

如何激活它们?转到存储库的设置,例如https://github.com/rectorphp/rector/settings,然后?

在此处输入图片说明


提示:是否要防止合并分支堆积?也启用自动分支删除


来源

虽然它可能不仅仅是您的用例所需要的,但它可以与 GitHub Actions 一起使用以更轻松地实现目标。

  • OP 要求将 master 的更改合并到其他分支(没有 PR)。这个发布的答案是关于自动关闭 PR (通常是在 other_branch => master 的方向)。 (15认同)
  • https://github.blog/changelog/2020-12-16-pull-request-auto-merge-public-beta/ - 已经出来了 (2认同)