gpt4 book ai didi

Git 仅在 GitLab 中记录不明确的参数

转载 作者:行者123 更新时间:2023-12-03 08:48:40 24 4
gpt4 key购买 nike

我有两个分支,master 和turtles,其中turtles 领先于master 一项提交:“我喜欢turtles”。
在 GitLab 中,我有以下 .yml 文件,每当创建 merge 请求或通过推送分支进行 merge 来更新该请求时,该文件都会运行:

update-doc:
stage: deploy
script:
- echo $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
- 'echo $(git log --abbrev-commit remotes/origin/master)'
- 'echo $(git log --abbrev-commit remotes/origin/master..remotes/origin/${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME})'
- 'echo $(git cherry -v remotes/origin/master remotes/origin/turtles --abbrev=1)'
only:
- merge_requests

运行git log --abbrev-commit remotes/origin/master..remotes/origin/turtlesgitcherry -v remotes/origin/master remotes/origin/turtles code> 在我的 Windows 机器上的 Git Bash 和我们托管 GitLab 的 Linux VM 上,返回提交消息“我喜欢海龟”,正如预期的那样。但是当 .yml 文件运行时,它找不到分支 remotes/origin/turtles 并且我得到以下输出:

$ echo $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
turtles
$ echo $(git log --abbrev-commit remotes/origin/master)
8406e4d Update .gitlab-ci.yml
$ echo $(git log --abbrev-commit remotes/origin/master..remotes/origin/${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME})
fatal: ambiguous argument 'remotes/origin/master..remotes/origin/turtles': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git [...] -- [...]'
$ echo $(git cherry -v remotes/origin/master remotes/origin/turtles --abbrev=1)
fatal: Unknown commit remotes/origin/turtles

因此,GitLab 清楚地知道存在turtles 分支,因为它位于 $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME 变量中,但似乎无法解析remotes/origin/turtles。我也尝试过不使用 Remote /原点/部分,但仍然没有运气。

如何让 GitLab 运行程序识别 merge 请求分支的远程路径?或者我可以尝试另一个 git 命令来仅显示海龟分支上的提交?

最佳答案

在 GitLab CI/CD 中, checkout 代码的默认策略是通过浅 merge 获取当前分支,例如git fetch --深度 50 来源 $CI_COMMIT_BRANCH 。这解释了为什么您只看到一个分支。

您可以解决此问题:

  • 通过在 Web UI 中将“Git 浅克隆”设置为 0,或者
  • 通过在 .gitlab-ci.yml 中设置 GIT_DEPTH: 0 来禁用浅克隆,或者
  • 通过 pull/获取您需要的任何其他分支,例如git fetch origin master

引用the docs on shallow cloning .

关于Git 仅在 GitLab 中记录不明确的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60298600/

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