我已经在计算机上安装了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
答案 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'
}
}