2

如何在 Container Builder 中将新文件提交到 git 存储库?构建步骤看起来很简单:

{
    "name": "gcr.io/cloud-builders/git",
    "args": ["commit", 
            "--author=\"David\ Wynn\ <Remixer96@gmail.com>\"",
            "-am", 
            "Test post"]
}

...但生成的命令以一种无效的方式包装 --author :

commit "--author="David Wynn <Remixer96@gmail.com>"" -am "Test post"

提交时还有其他方法可以传递作者吗?容器构建器是否有明确的“不要引用这个”命令?

更新01

下面的 Edmund 建议将等号分开应该可以解决此问题,但仍然会抛出未知用户的错误。这里的堆栈溢出问题:

提交而不设置 user.email 和 user.name

...表明这是因为作者标志不更新提交者,这是必需的。新的长格式应该是这样的:

git -c user.name='Paul Draper' -c user.email='my@email.org' commit -m '...'

.... 但这让我们回到了最初的问题,因为 Container Builder 似乎无法在不引用整个部分的情况下采用空格分隔的参数。

更新 02(已解决)

出于某种原因,git 在为 -c 标志使用带引号的字符串时似乎很好,因此现在在容器构建器中可以正常工作。该步骤现在如下所示:

{
  "name": "gcr.io/cloud-builders/git",
  "args": ["-c",
          "user.name=\"David\ \Wynn\"",
          "-c",
          "user.email=\"Remixer96@gmail.com\"",
          "commit", 
          "-m", 
          "Test post"]
},
4

2 回答 2

1

正如更新中所发布的,git 显然在 -c 标志上采用了带引号的字符串,因此现在使用以下步骤在容器构建器中传递而不会出现问题:

{
  "name": "gcr.io/cloud-builders/git",
  "args": ["-c",
          "user.name=\"David\ \Wynn\"",
          "-c",
          "user.email=\"Remixer96@gmail.com\"",
          "commit", 
          "-m", 
          "Test post"]
},
于 2017-12-15T19:14:55.683 回答
0

将参数分成两部分(--author,value)应该可以解决这个问题。您可以对 git 中的任何参数执行此操作,手册中说的格式应为“--argument=value”。

{
    "name": "gcr.io/cloud-builders/git",
    "args": ["commit", 
            "--author",
            "\"David\ Wynn\ <Remixer96@gmail.com>\"",
            "-am", 
            "Test post"]
}
于 2017-12-15T08:21:39.980 回答