Git仅在GitLab中记录模棱两可的参数 [英] Git log ambiguous argument only in GitLab

查看:23
本文介绍了Git仅在GitLab中记录模棱两可的参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个分支,师父和乌龟,其中乌龟领先师父一个承诺:‘我喜欢乌龟’。
在GitLab中,我有以下.yml文件,该文件在创建合并请求时运行,或者通过推动分支进行合并来更新:

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
在我的Windows机器和我们托管GitLab的Linux VM上,在Git Bash中运行git log --abbrev-commit remotes/origin/master..remotes/origin/turtlesgit cherry -v remotes/origin/master remotes/origin/turtles会如预期的那样返回提交消息‘我喜欢乌龟’。但是当.yml文件运行时,它找不到分支remotes/origin/turtles,我得到以下输出:

$ECHO$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME 乌龟
$ECHO$(git log--abbrev-Commit remotes/source/master)
8406e4d更新.gitlab-ci.yml
$ECHO$(GIT日志--缩写-提交remotes/origin/master..remotes/origin/${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME})
致命:不明确的参数‘remotes/origin/master..remotes/origin/turtles’:未知修订或路径不在工作树中。 使用‘--’将路径与修订分开,如下所示: ‘git[.]--[.]’
$ECHO$(git cherry-v remotes/Origin/master remotes/Origin/海龟--abbrev=1)
致命:未知提交远程/源/海龟

所以GitLab清楚地知道在$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME变量中有turtle分支,但是似乎不能解析远程/源/turtle。我也试过没有遥控器/原点/零件,但还是没有成功。

如何让GitLab运行器识别合并请求分支的远程路径?或者有没有其他git命令可以让我尝试一下,它只显示海龟分支上的提交?

推荐答案

在GitLab CI/CD中,签出代码的默认策略是通过浅层合并获取当前分支,例如git fetch --depth 50 origin $CI_COMMIT_BRANCH。这就解释了为什么您只看到一个分支。

您可以修复此问题:

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

请参阅the docs on shallow cloning

这篇关于Git仅在GitLab中记录模棱两可的参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆