如何在管道内以代码形式创建git存储库
我试图将一个声明性管道从Jenkins管道配置输入框中写入,转移到BitBucket中托管的代码中,这样我们就可以对这个管道所做的任何更改进行源代码控制 由于pipeline as代码步骤是在git存储库中的Jenkins文件中编写的,因此当我尝试初始化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. 有没有办法妥
+ git remote add origin git@bitbucket.org:X/Y.git
fatal: remote origin already exists.
有没有办法妥善处理这件事
编辑:
因此,错误表明已经有一个同名的遥控器。明智地说,你不能再加上两次。有两种选择:
不清楚您在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