git 将文件从一个存储库中的分支发送到另一个存储库中的分支(存储库不在同一个帐户中)

pwuypxnk  于 2023-01-15  发布在  Git
关注(0)|答案(1)|浏览(84)

我需要使用groovy(jenkins管道)将发布文件从非生产回购中的分支发送到生产回购中的分支。回购不在同一个帐户中。

  • 是否可以将文件从一个回购协议发送到不同帐户中的回购协议?

我用的是比特桶。
目前为止我试过了,

stage("Create a branhc in remote Repo"){
    steps{
       script{
        withCredentials([[$class: 'usernamePasswordMultiBinding",
                    credentialsId: '####',
                    usernameVariable: '###',
                    passwordVariable: '###',]])

        stdout = sh(script: 'git checkout -b release/1.0.1', returnStdout: true)
        sh(script:'git push origin release/1.0.1 remote repo url')

}}}

当我运行这个程序时,我得到以下错误,java.lang.IllegalStateException:必须使用主体调用withCredentials步骤
我正在尝试在远程repo中创建一个新分支,远程repo指的是另一个git hub账户中的repo(在prod env中)。

t98cgbkg

t98cgbkg1#

我找到的解决方案是将分支克隆到一个文件夹中,然后从文件夹中删除.git。

sh script: "rm -rf .git"

然后在同一个文件夹中初始化一个新的git,并将其推送到我想要的仓库。

dir("folder"){
    sh script: "git init"
    sh script: "git add *"
    sh script: 'git commit -m "new branch created"'
    sh script: "git checkout -b ${new_branch}"
    withCredentials([[$class: 'UsernamePasswordMultiBinding',
                       credentialsId: 'mycred',
                       usernameVariable: 'username',
                       passwordVariable: 'pass']]){
    sh('git push https://${username}:${pass}@git.example.com:8080/scm/user/reponame ${new_branch})
}

相关问题