【发布时间】:2021-07-25 21:32:36
【问题描述】:
我有一个工作流程,我在使用 Github Actions 推送 prod 分支时自动将 prod 分支合并到 master 分支
用于 github 操作的 Yml 文件
name: Merge Prod -> master
on:
push:
branches: [ prod ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Merge prod->master ff_only
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config user.name "test"
git config user.email "test@test.com"
git fetch origin master
git fetch origin prod
git checkout master
git pull --rebase
git merge prod --ff-only --allow-unrelated-histories
git push origin master
日志:
Run git config user.name "test"
git config user.name "test"
git config user.email "test@test.com"
git fetch origin master
git fetch origin prod
git checkout master
git pull --rebase
git merge prod --ff-only --allow-unrelated-histories
git push origin master
shell: /usr/bin/bash -e {0}
env:
GITHUB_TOKEN: ***
From https://github.com/luvk1412/demo
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
From https://github.com/luvk1412/demo
* branch prod -> FETCH_HEAD
Switched to a new branch 'master'
Branch 'master' set up to track remote branch 'master' from 'origin'.
From https://github.com/luvk1412/demo
Already up to date.
* [new branch] f2 -> origin/f2
* [new branch] f3 -> origin/f3
* [new branch] test_branch -> origin/test_branch
fatal: Not possible to fast-forward, aborting.
Error: Process completed with exit code 128.
提交示例:https://github.com/luvk1412/demo/commit/790d824111d0c0c5b28157b9108e7b97b6b6cdc8
通过 PR 生成的提交:https://github.com/luvk1412/demo/pull/38
测试分支:https://github.com/luvk1412/demo
PR 合并到 prod 后,我的 prod 分支完全包含 master 分支和一个额外的提交(由于 PR),因此满足快进条件并且快进应该可以工作,我不确定我在这里缺少什么。 快进适用于我的本地(如果我不自动执行此操作并通过本地手动执行)
【问题讨论】:
-
旁注:
--ff-only和--allow-unrelated-histories组合起来毫无意义。如果您想要快进合并,请忽略--allow-unrelated-histories。额外的选项没有有害,只是无稽之谈。 -
@torek 实际上,当我写这篇文章时,我遇到了一个无关历史的错误,当时我没有使用 --ff-only 并且只是在添加 --ff-only 后没有删除它,我明白你在说什么
标签: git github github-actions