Github操作- checkout 另一个存储库并合并远程分支-奇怪的行为

soat7uwm  于 2022-12-10  发布在  Git
关注(0)|答案(2)|浏览(116)

我有一个checkout/v3操作,它从远程存储库中提取

- uses: actions/checkout@v3
    with:
      repository: myorg/myrepo
      ref: mybranch
      token: ${{ secrets.ACCESS_TOKEN }}

然后尝试合并远程分支

- run: |
      git config --global user.email "me@myorg.com"
      git config --global user.name "me"
      git fetch
      git merge mybranch origin/${{ env.ANOTHER_BRANCH}}

我遇到的第一个问题是,此操作失败并出现意外错误

fatal: refusing to merge unrelated histories

这两个分支都是main的分支,仅对ANOTHER_BRANCH进行了1个单字母更改测试提交。
添加设置--allow-unrelated-histores可以让我忽略这个错误,但是随后我会遇到合并冲突。
问题是这是我唯一遇到冲突的地方,所以我无法解决它。如果我在ANOTHER_BRANCH -〉mybranch之间创建一个pull请求,则没有报告冲突。如果我在本地拉下这些分支并进行相同的合并,则没有冲突。似乎冲突与我的GH Action用例有关。
有什么想法吗?

vmdwslir

vmdwslir1#

这两个都是 Backbone.js 的分支
请确保使用git branch -a --contains main
他们没有。

0md85ypi

0md85ypi2#

GitHub操作默认使用浅层克隆,作为一种优化:如果您不打算使用整个历史记录,那么获取它就没有意义!
然而,在您的用例中,您使用的是历史记录,因此您可以使用fetch-depth: 0来请求它,这将获取完整的历史记录。
解决方案,在不同的问题中找到相同的修复:

- uses: actions/checkout@v3
  with:
    fetch-depth: 0

参考:https://stackoverflow.com/a/71819349/3216427

相关问题