使用 --amend 重写提交后 CodeCommit 失败

CodeCommit fails when after commit rewrite with --amend

我们正在使用 AWS Elastic Beanstalk 和 eb cli 进行部署。

我们偶然发现的一个问题是无法重写提交。

在运行 git commit --amend 后尝试使用 eb deploy 进行部署时,我们收到以下错误:

ERROR: InvalidParameterValueError - "Error making request to CodeCommit: Could not retrieve 0fb2ddf61003f05e67aeabe... (Service: AWSCodeCommit; Status Code: 400; Error Code: CommitIdDoesNotExistException; Request ID: bee56acc-201b-4a3f-...-...)"

我们如何克服这个问题并在 运行 git commit --amend 之后部署?

解决方案:

eb codesource local,禁用 CodeCommit 集成。

很明显,CodeCommit 被奇怪地部分集成了。它正在执行某种跟踪 - 因此是错误,但是当 运行 eb use --source codecommit/myrepo/mybranch 它失败了:

ERROR: NotFoundError - CodeCommit branch not found:

任何人都可以进一步阐明这个主题。

正在阅读“Configuring additional branches and environments ”,并考虑到任何修改都会重写历史(至少更改 HEAD 提交),您可能不需要:

  • 强制推送
  • re-specify 用于 eb 环境的分支源

即:

git push --force
eb use --source my-app/myBranch <eb-environment>

OP Gapi 报告实际上必须停用代码提交:

eb codesource local