Shell脚本“git diff origin/master --name-only”抛出致命错误:模糊参数'master':未知的修订或路径不在工作树中

9gm1akwq  于 2023-05-27  发布在  Git
关注(0)|答案(2)|浏览(228)

git diff origin/master --name-only
命令在我的bitbucket管道抛出下面的错误。但在我的本地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>...]'

我期望它返回的文件是改变了作为从主brnach。使用--name-only时,它只返回我本地git bash中更改文件的名称,但在bitbuckt管道中抛出上述错误。

i2byvkas

i2byvkas1#

首先:错误消息提到了'master',而不是'origin/master'。检查bitbucket管道的脚本:你检查masterorigin/master吗?
第二:根据您设置的选项,您的管道可能根本 * 没有 * origin/master-如果您指示您的管道仅使用浅克隆,则可能会发生这种情况。

  • 要检查是否是这种情况:

让你的管道在某个时候运行git branch -r,你将在管道日志中拥有远程分支的列表。还要检查如何为origin设置refspec:

git config --get-all remote.orgin.fetch
  • 要修复它:

在管道中运行git fetch origin master
如果没有refspec指示如何从origin获取分支,您可能需要改为运行:

git fetch origin +master:refs/remotes/origin/master
o7jaxewo

o7jaxewo2#

感谢@LeGEC的回复。我已经尝试了下面的命令,它的工作,似乎像bitbucket管道不会有层次结构,如origin/*像我们的本地。在使用VSCode的本地Windows 11机器上,我没有观察到任何这些问题,但在bitbucket管道上,它显示它弹出了。

$ git diff --name-only master -- VERSION

相关问题