存储库中脚本内的Git签出

存储库中脚本内的Git签出,git,github,automation,Git,Github,Automation,我有一个git存储库,其中包含build.sh脚本。build.sh执行以下操作: 如果需要,签出其他分支(git签出{branchname}) 递归子模块更新 docker代码的构建 对于步骤1,参数主要是“master”,而不是代码冻结时间。由于它是一个新的克隆,我希望git checkout master说已经在master上了。但它却表示切换到了分支“master”。您的分支在“源站/主站”后740次提交,可以快速转发 当我在机器上新克隆存储库并运行此脚本时,我看到发生了意外的事情。步骤

我有一个git存储库,其中包含build.sh脚本。build.sh执行以下操作:

  • 如果需要,签出其他分支(git签出{branchname})
  • 递归子模块更新
  • docker代码的构建
  • 对于步骤1,参数主要是“master”,而不是代码冻结时间。由于它是一个新的克隆,我希望
    git checkout master
    已经在master上了。但它却表示
    切换到了分支“master”。您的分支在“源站/主站”后740次提交,可以快速转发

    当我在机器上新克隆存储库并运行此脚本时,我看到发生了意外的事情。步骤1,使其返回到过去的几个提交并开始构建。以下是相关日志:

    REGISTRY=xyz-ci.olympus.abc.com TAG=master FROM_TAG=master ./build.sh
    05:33:54  Previous HEAD position was 38364c0cfd Update a-comp submodule
    05:33:54  Switched to branch 'master'
    05:33:54  Your branch is behind 'origin/master' by 740 commits, and can be fast-forwarded.
    05:33:54    (use "git pull" to update your local branch)
    05:33:54  fatal: could not read Username for 'https://devgit.abc.com': No such device or address
    
    我尝试了以下方法来解决此问题:

  • 将默认分支名称从
    master
    更改为
    origin/master
  • git远程设置url源git@devgit.abc.com:WebApps/myProject.git
    作为签出前的第一步

  • 他们两个都没帮上忙。它仍然可以追溯到旧的提交。欢迎使用任何指针。

    在实际签出之前,在脚本中嵌入以下
    git fetch origin master:master
    。如输出消息所示,
    git签出本身成功。失败的步骤是随后的
    git fetch
    ,可能是一个子模块的步骤。记住,每个子模块都是一个Git存储库;每个Git存储库都可能需要用户名和密码,这取决于您的设置方式。