有没有办法将我当前的dev分支合并到staging分支作为步骤?

时间:2019-04-03 21:54:04

标签: git git-merge

我已经在计算机上安装了git,但是当我尝试在shell脚本中运行“ git fetch origin / staging”时,我仍然收到以下错误消息:

git fetch origin/staging
fatal: 'origin/staging' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
script returned exit code 128

我的下一个shell命令是

git checkout origin/staging
git merge dev

3 个答案:

答案 0 :(得分:2)

  

致命:'origin / staging'似乎不是git存储库

请注意,origin/staging是指远程跟踪分支。错误消息告诉您git fetch要求使用远程名称。所以尝试

git fetch origin

那你应该做

git checkout staging

会创建一个名为staging的新本地分支,该分支指向与远程跟踪分支origin/staging相同的提交。那你可以做

git merge dev

与您一样。

答案 1 :(得分:2)

git fetch并不希望将<branch>作为第一个参数,而是将<remote>作为第一个参数,所以您可以

git fetch origin

(有关详细信息,请检查doc

但是,您可以 专门为远程站点上的分支获取,但是您必须在远程站点上显式,否则您的分支将被假定为远程站点本身:

git fetch origin staging

(请注意,这里我们使用的是分支本身的名称,而不是 origin/staging ,它是在您的存储库中跟踪它的远程跟踪分支的名称)

答案 2 :(得分:0)

这成功了!第一步签出登台分支。第二步将开发合并到阶段。最后一步将登台推向原点。

stage('Merge') {
      steps {
        git branch: 'staging', credentialsId: 'a-long-id', url: 'https://test@bitbucket.org/project/myrepo.git'
        sh 'git merge dev'
        sh 'git push origin staging'
      }
}