gpt4 book ai didi

Github 操作 : Git diff master. ..HEAD 致命:没有 merge 基础

转载 作者:行者123 更新时间:2023-12-03 23:42:25 24 4
gpt4 key购买 nike

一些上下文
长话短说:我正在尝试运行 jest --changedSince=master当我打开一个新的 Pull Request 时。笑话改变了,因为标志运行git diff master...HEAD在后台。这导致了我似乎无法理解的错误。
现在的情况
为了调试这个,我有一个 Github Action它有一个非常类似于以下步骤的步骤:

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: |
git fetch --no-tags --depth=1 origin master
git checkout -t origin/master
git checkout pull/1/merge
git diff master...HEAD
这会导致以下错误(这与 Jest 返回的错误相同):
fatal: refs/remotes/origin/master...HEAD: no merge base

我试过的
当我在本地运行它时不会出现问题(想象一下)。我确实意识到这里最大的问题很可能是 actions/checkout@2操作不会获取整个存储库。这就是为什么我添加了 git fetch & git checkout -t origin/masterpull/1/merge命令。
我确实尝试运行 git branch -a要调试这是否按预期工作,结果如下:
* (HEAD detached at pull/1/merge)
master
remotes/origin/master
remotes/pull/1/merge
运行 git diff master...HEAD 所需的所有引用似乎在行动中可用。
我也试过检查是否实际 ref正确返回:
我跑了 git show-ref master在返回的操作中:
<commit-sha> refs/heads/master
<commit-sha> refs/remotes/origin/master
我对可能导致此问题的原因一无所知,非常感谢任何想法!

最佳答案

如果您想探索master的历史和 HEAD (如:找到这两个提交的 merge 基础),您不能将您的克隆/获取操作限制为浅克隆——而不是 depth=1至少。
尝试设置 fetch-depth: 0 (或者可能是 fetch-depth: 1000 # a high enough number )在您的 action/checkout@v2 的配置中(如 in the project's Readme 所述),并删除 --depth=1 (或将其设置为更高的值)当您运行时 git fetch origin master .

另一种方法是通过 GitHub API 获取此类信息,而不是查询本地克隆。

关于Github 操作 : Git diff master. ..HEAD 致命:没有 merge 基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64957915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com