使用 --amend 提交重写后,CodeCommit 失败
Posted
技术标签:
【中文标题】使用 --amend 提交重写后,CodeCommit 失败【英文标题】:CodeCommit fails when after commit rewrite with --amend 【发布时间】:2021-01-29 10:31:19 【问题描述】:我们正在使用 AWS Elastic Beanstalk 和 eb cli 进行部署。
我们偶然发现的一个问题是无法重写提交。
在运行 git commit --amend
之后尝试使用 eb deploy
进行部署时,我们收到以下错误:
错误:InvalidParameterValueError -“向 CodeCommit 发出请求时出错:无法检索 0fb2ddf61003f05e67aeabe...(服务:AWSCodeCommit;状态代码:400;错误代码:CommitIdDoesNotExistException;请求 ID:bee56acc-201b-4a3f-...-。 ..)”
在运行git commit --amend
之后,我们如何克服它并进行部署?
解决方案:
eb codesource local
,禁用 CodeCommit 集成。
很奇怪,CodeCommit 是部分集成的。它正在执行某种跟踪 - 因此出现错误,但是在运行 eb use --source codecommit/myrepo/mybranch
时它失败了:
错误:NotFoundError - 未找到 CodeCommit 分支:
欢迎任何能对该主题有更多了解的人。
【问题讨论】:
【参考方案1】:阅读“Configuring additional branches and environments ”,并考虑到任何修改都会重写历史记录(至少更改 HEAD 提交),您可能需要:
强制推送 重新指定用于 eb 环境的分支源即:
git push --force
eb use --source my-app/myBranch <eb-environment>
OP Gapi 报告实际上必须停用 codecommit:
eb codesource local
【讨论】:
谢谢,我试过了,得到:错误:InvalidOptionsError - EBCLI 不支持源位置“repo ...” @Gapi 语法我不是很了解,但是查看官方文档:docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-use.html。我可能错过了codecommit/
。
谢谢,它仍然失败 - 没有找到分支。现在我已经通过禁用 CodeCommit 集成来“解决”它(请参阅我编辑的问题)。
@Gapi 好的。我已经更新了答案,并会检查我是否找到任何解释为什么需要这样的步骤以上是关于使用 --amend 提交重写后,CodeCommit 失败的主要内容,如果未能解决你的问题,请参考以下文章