我的使用涉及查找合并请求与主分支或发布分支之间的差异(我想要进行差异比较的任何分支),合并请求将设置CI_MERGE_REQUEST_TARGET_BRANCH
。
CHANGED_DIRS=$(git diff --name-only ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}...${CI_COMMIT_REF_NAME} | xargs -L1 dirname | uniq | cut -d'/' -f1 |tail -n+2 | uniq)
但是似乎gitlab无法识别合并请求的目标分支差异并给出此输出。
fatal: ambiguous argument 'master...source': unknown revision or path not in the working tree.
我该如何查找差异(即哪些是目录)。
感谢您的帮助!
git fetch
什么?默认情况下,GitLab 首先初始化仓库并执行 git add remote 和 checkout 分支(即合并请求分支)。您的意思是我在进行差异比较之前应该先执行git fetch origin master
吗? - vgdubget fetch
单独使用时,无需参数,它将获取所有的分支。默认情况下,GitLab首先初始化仓库,执行git add remote并checkout该分支(也就是合并请求分支)。不完全正确,GitLab-CI 在没有分支checkout的情况下会进入分离头状态,但这取决于配置。甚至还有一个默认的提交数目在项目配置中被检查,我想默认值为50个。 - KamilCuk* [新分支] master -> origin/master 致命错误:模糊参数 'origin/master...whatever':未知的修订或路径不在工作树中。
- vgdubgit fetch && git checkout ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} && git pull
,这个命令可行。 - vgdub