Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在管道内以代码形式创建git存储库_Git_Jenkins_Jenkins Pipeline_Pipeline_Git Init - Fatal编程技术网

如何在管道内以代码形式创建git存储库

如何在管道内以代码形式创建git存储库,git,jenkins,jenkins-pipeline,pipeline,git-init,Git,Jenkins,Jenkins Pipeline,Pipeline,Git Init,我试图将一个声明性管道从Jenkins管道配置输入框中写入,转移到BitBucket中托管的代码中,这样我们就可以对这个管道所做的任何更改进行源代码控制 由于pipeline as代码步骤是在git存储库中的Jenkins文件中编写的,因此当我尝试初始化git存储库以将生成的文件添加到其中时,会出现一个错误: + git remote add origin git@bitbucket.org:X/Y.git fatal: remote origin already exists. 有没有办法妥

我试图将一个声明性管道从Jenkins管道配置输入框中写入,转移到BitBucket中托管的代码中,这样我们就可以对这个管道所做的任何更改进行源代码控制

由于pipeline as代码步骤是在git存储库中的Jenkins文件中编写的,因此当我尝试初始化git存储库以将生成的文件添加到其中时,会出现一个错误:

+ git remote add origin git@bitbucket.org:X/Y.git
fatal: remote origin already exists.
有没有办法妥善处理这件事

编辑:


因此,错误表明已经有一个同名的遥控器。明智地说,你不能再加上两次。有两种选择:

  • 更新远程url:
  • 删除并重新添加原点
  • 编辑

    看起来像是复制品:

    不清楚您在git回购的初始阶段想要实现什么。每次运行作业时,都会初始化并推送回购。这很难做到不止一次


    Jenkins知道如何运行存储在repo上的Jenkins文件。您需要手动创建repo,在那里提交Jenkins文件,然后在Jenkins中添加一个新作业,告诉它Jenkins文件应该从repo中带过来。这称为“来自SCM的管道脚本”。然后,您应该在Jenkins中配置凭据、路径、分支等。每次运行作业时,Jenkins都会从repo中签出您的Jenkins文件,然后运行它。

    这两种方法似乎都不起作用。具有该名称的源文件肯定不存在,我将编辑OP以显示Jenkinsfile git内容。1:+git推送原点主控错误:src refspec主控与任何主控不匹配。错误:无法将某些引用推送到'git@bitbucket.org:X/Y.git'错误与2:+git推送原点主控错误:src refspec主控不匹配。错误:无法将某些引用推送到'git@bitbucket.org:X/Y.git“Jenkins管道配置输入框中编写的声明性管道,…”您能详细说明一下您的目标是什么,以及它到底是什么样子的吗?之前,管道是作为管道脚本在Jenkins网站的配置中编写的。我正试图将其提交到Bitbucket git存储库中,这样我们就可以对Jenkins文件进行源代码控制,而不是只将其保存在Jenkins输入框中。对不起,我仍然不明白您对输入框的意思,它在哪里?还可以共享执行git命令的管道的当前代码。当前代码如上所述,它位于管道脚本输入框中多分支管道配置的Jenkins上。我正在将它转移到源代码管理中,因此它是一个作为代码的管道。如果您的Jenkins文件驻留在与您尝试创建的repo不同的repo中,或者您尝试在命令行上为Jenkins文件本身创建repo,这仍然是不明确的。如果前一个脚本和管道脚本在保存到作业配置UI时以前一直工作,但在移动到Git后现在失败,请在从SCM中选择管道脚本下的轻量级签出复选框后重试。如果是后者,那么问题应该围绕Git或Bitbucket,而不是Jenkins,以避免混淆。它是参数化的,因此每次运行时,它都会初始化并推送一个全新的存储库。您的原始问题如何解释这一点,例如。“我正在尝试将声明性管道从写入Jenkins管道配置输入框中移动到托管在BitBucket中的代码中,以便我们对该管道所做的任何更改都具有源代码控制”?此外,您的工作区还包含上一次运行的结果。例如,请查看您是否希望
    rm-rf.git
                sh "git init"
                sh "git add ."
                sh "git commit -m \"Initial commit\""
                sh "git remote rm origin"
                sh "git remote add origin git@bitbucket.org:X/Y.git"
                sh "git remote -v"
                sh "git push origin master"
                sh "cat .git/config"
    
    git remote set-url origin git@bitbucket.org:X/Y.git
    
    git remote rm origin
    git remote add origin git@bitbucket.org:X/Y.git