如何找出 GitLab 合并请求中两次推送之间哪些文件已更改?

问题描述 投票:0回答:1

想象一下这个场景:

  • 我创建了一个合并请求,在其中修改了
    src/
    中的文件。这会触发 CI/CD 管道中长时间运行的测试作业。
  • 我忘记更新自述文件,所以我推送了另一个提交。 我不想再次运行长时间运行的测试,因为自述文件不在
    src/
    中。

我现在的想法是检查管道 1 和管道 2 之间发生更改的文件。我们启用了合并结果管道(因此 GitLab 创建一个提交,其中包含运行管道时源分支和目标分支合并在一起的结果)。

我的合并请求有这些管道:

管道ID 管道式 提交 SHA 注释
#1 合并结果 fca36db3 首次推送,更改为
src/
#2 合并结果 6cb35df4 第二次推送,对自述文件进行了更改

我的 CI/CD 工作如下所示:

job:
  script:
    - git diff fca36db3..6cb35df4 --

输出:

$ git diff fca36db3..6cb35df4 --
fatal: bad revision 'fca36db3..6cb35df4'

显然,GitLab 创建的合并提交在这里不可用。我尝试将

GIT_STRATEGY
设置为
clone
并将
GIT_DEPTH
设置为
0
,但没有成功。是否可以使用这些提交?

git gitlab gitlab-ci
1个回答
0
投票

可以通过创建分支来从另一个存储库获取这些提交。想法来自 我可以查看远程的引用日志(不是远程引用)吗?

job:
  script:
    - curl --request POST --header "PRIVATE-TOKEN: $TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/repository/branches?branch=branch-for-fca36db3&ref=fca36db3"
    - git fetch origin branch-for-fca36db3
    - curl --request POST --header "PRIVATE-TOKEN: $TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/repository/branches?branch=branch-for-6cb35df4&ref=6cb35df4"
    - git fetch origin branch-for-6cb35df4
    - git diff fca36db3..6cb35df4 --
© www.soinside.com 2019 - 2024. All rights reserved.