英文:
Shell script "git diff origin/master --name-only" throwing error fatal: ambiguous argument 'master': unknown revision or path not in the working tree
问题
The translation of the code portion you provided is:
git diff origin/master --name-only
这是您提供的代码部分的翻译。
英文:
git diff origin/master --name-only
command in my bitbucket pipelines throwing below error. but works good in my local git bash.
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
I am expectign it to return the files that are changed as of from master brnach. with --name-only it is returning only names of the changes files in my local git bash, but throwing above error in bitbuckt pipelines.
答案1
得分: 2
第一点:错误信息提到 'master'
而非 'origin/master'
。检查你 Bitbucket 管道的脚本:你是检查 master
还是 origin/master
?
第二点:取决于你设置的选项,你的管道可能根本没有 origin/master
—— 这可能发生在你指示管道仅使用浅克隆时。
- 要检查这种情况:
在某个时刻让你的管道运行 git branch -r
,你会在管道日志中得到远程分支的列表。还要检查 origin
的 refspec 设置:
git config --get-all remote.orgin.fetch
- 要修复:
在你的管道中运行 git fetch origin master
。
如果没有指示如何从 origin 获取分支的 refspec,你可能需要运行:
git fetch origin +master:refs/remotes/origin/master
英文:
First: the error message mentions 'master'
, not 'origin/master'
. Check the script for your bitbucket pipeline: do you check for master
or origin/master
?
Second: depending on the options you set, your pipeline may well not have origin/master
at all -- this may happen if you instruct your pipeline to only use a shallow clone.
- To check whether this is the case:
have your pipeline run git branch -r
at some point, you will have the list of remote branches in the pipeline log. Also check how the refspec is set for origin
:
git config --get-all remote.orgin.fetch
- To fix it:
run git fetch origin master
in your pipeline.
If there is no refspec instructing how to fetch branches from origin, you may need to instead run:
git fetch origin +master:refs/remotes/origin/master
答案2
得分: 0
感谢您的回复 @LeGEC。我已尝试下面的命令,它有效,似乎Bitbucket Pipelines 不会像我们的本地那样有 origin/*
的层次结构。在本地的 Windows 11 机器上使用 VSCode 时,我没有观察到任何这些问题,但在 Bitbucket Pipeline 上,它显示了弹出。
$ git diff --name-only master -- VERSION
英文:
Thanks for the response @LeGEC. I have tried the below command and it worked, seems like bitbucket pipelines won't be having hierarchy like origin/*
like our local. In the local Windows11 machine with VSCode I haven't observed any of these issues but on the bitbucket pipeline, it showed it popped out.
$ git diff --name-only master -- VERSION
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论