当前位置: 首页 > 面试题库 >

将工作空间中的已修改文件推送到Github

暴辰龙
2023-03-14
问题内容

作为我的Jenkins管道构建的一部分,我签出了我的仓库(它将复制到我可以看到的工作区中)。然后,我在工作区中修改了一个文件,然后将其回推到我的Github存储库。我只是在更新podspec文件中的版本号。

node {
  stage 'Update File'
   env.WORKSPACE = pwd()
   File file = new File("${env.WORKSPACE}/ios.podspec");
   fileText = file.text;
   regex = "(spec.version\\s.*\$)";
   fileText = fileText.replaceAll(regex, "spec.version               =   '${VERSION}'\n".trim());
   file.write(fileText);

}

如何获取该文件并将其推回我的Git存储库中?


问题答案:
sh "git checkout $branch"
sh "git add <your file>"
sh "git commit -m '...'"
sh "git push $url $branch"

棘手的部分是使用我正在使用此方法的相关凭据设置网址-

def getRemoteUrlWithCredentials(credentialsId) {
    withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: credentialsId, usernameVariable: 'GIT_USERNAME', passwordVariable: 'GIT_PASSWORD']]) {
        def scmUrl = scm.getUserRemoteConfigs()[0].getUrl()
        scmUrl = scmUrl.substring(scmUrl.indexOf("github.com"))
        return "https://${GIT_USERNAME}:${GIT_PASSWORD}@${scmUrl}"
    }
}

其中credentialId是您的git凭据Id。您将需要添加scm.getUserRemoteConfigs到Manage
Jenkins->处理中脚本批准中的批准列表。

最后一部分-我不确定是否有必要,但也许您需要设置配置user.email和user.name->

def setupConfig(email, userName) {
    sh "git config user.email $email"
    sh "git config user.name $userName"
}


 类似资料:
  • 我有一个Github repo项目,使用Github操作和一个docker文件来构建SpringBoot Java项目 我想从Github repo下载来自Github repo的定制工件包,并能够将工件上传到其中。 所以我按照配置Apache Maven用于GitHub包的链接,将该部分添加到settings.xml文件中: 为了从dockerfile构建中发布包,我在pom.xml中添加了以下

  • 问题内容: 环顾四周,但找不到一个示例。没有解释文档,我无法弄清楚。 如何修改文件(例如,README.md),为修改后的文件创建提交,然后将提交推送到服务器? Nodegit:http ://www.nodegit.org/ Nodegit文档:http ://www.nodegit.org/nodegit 问题答案: 有一个示例,说明如何在其存储库上创建/添加和提交,可以帮助您修改文件。 ht

  • 我很难让这个代码正常工作。我学了很多,但我是个初学者。 这是剧本: //将新事件推送到日历函数pushToCalendar(){//电子表格变量 var sheet=SpreadsheetApp.getActiveSheet(); var range=sheet.getRange(1,1,5,25); var values=range.getValues(); 这里有一个到假人的链接: https

  • 订阅号-群发消息-已发送及留言-编辑-保存 备注:只可修改正文,不支持修改标题、封面、摘要。

  • 我想使用GitHub操作自动化我的构建过程,这个过程有以下步骤: 签出 构建 打包 标记 增量版本 提交更改 推送标记和新提交 将包推送到repo

  • 如何在本地删除空文件夹,并让通过拉-推共享远程文件夹的其他协作者也这样做?我知道git不会从这个意义上“跟踪”文件夹,但问题仍然存在。 e、 我将一个文件移动到另一个文件夹并提交了(移动的)更改。 但是我不能文件夹,因为我得到的不匹配不存在。 我可以做一个,但是它是如何被推上去的呢? 我可以直接文件,但如何正确地删除目录,并将其推送到存储库,然后在其他人拉取时将其推送到存储库,以便删除其现有文件夹