Git仅在GitLab中记录模棱两可的参数 [英] Git log ambiguous argument only in GitLab
本文介绍了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/turtles
或git 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 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屋!
查看全文