Heroku - git push/deployment 期间出错,此代码的相同版本已经构建
Posted
技术标签:
【中文标题】Heroku - git push/deployment 期间出错,此代码的相同版本已经构建【英文标题】:Heroku - Error during git push/deployment, The same version of this code has already been built 【发布时间】:2021-03-31 21:33:04 【问题描述】:我在将 springboot 应用程序部署到 Heroku 时遇到问题。运行git push heroku master
后,遇到如下错误:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.350 s
[INFO] Finished at: 2020-12-22T06:33:14Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project audit: Fatal error compiling: invalid target release: 11 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <args> -rf :audit
remote: ! Push rejected, failed to compile Java app.
remote:
remote: ! Push failed
remote: !
remote: ! ## Warning - The same version of this code has already been built: 31199a7acec03a3cb614ebaaf6c7720cee6684bd
remote: !
remote: ! We have detected that you have triggered a build from source code with version 31199a7acec03a3cb614ebaaf6c7720cee6684bd
remote: ! at least twice. One common cause of this behavior is attempting to deploy code from a different branch.
remote: !
remote: ! If you are developing on a branch and deploying via git you must run:
remote: !
remote: ! git push heroku <branchname>:main
remote: !
remote: ! This article goes into details on the behavior:
remote: ! https://devcenter.heroku.com/articles/duplicate-build-version
remote:
remote: Verifying deploy...
remote:
remote: ! Push rejected to tesda8app.
我不知道为什么会发生此错误。我有两个远程存储库用于推送我的代码,一个来自 Heroku,一个来自 Github。我已经根据这个问题的答案尝试了以下命令,Heroku: If you are developing on a branch and deploying via git you must run:
git push heroku master:main
但错误仍然存在。我可以在 Heroku CLI 上尝试任何命令来解决这个问题吗?
【问题讨论】:
这只是一个警告。实际错误高于此。请edit您的问题并向我们显示上面的错误消息。 嗨,克里斯,感谢您指出这一点。我已经更新了错误日志 我不认为这是全部信息。请全部添加。 嗨@Chris 我更新了日志。这就是我收到的所有错误消息 【参考方案1】:我和你在同一天遇到同样的错误,我不知道这是否是你正在寻找的答案,但我以某种方式解决了这个问题。我正在制作一个 Django-Rest-Api。
原因
您已经在同一个文件夹/目录中创建了两个 git 存储库,并将相同的代码推送到他们的头脑中,但不知何故 Heroku 不希望您这样做。 记住没有两个 git repo 在同一级别。
关于git push heroku master:main
的事情
Heroku 仅从 main/master 分支部署您的代码
所以如果你从master以外的地方推送,你必须像git push heroku <new branch>:main
一样使用它,使用:main
和master
是没有意义的(相同)。
解决方案
选项 1(不适合我)
我不记得我从哪里得到这个但你必须创建一个新的 git 分支, 做
git branch <new branch>
git checkout <new branch>
git add .
git commit -am "commit message"
git push heroku <new branch>:main
但它给出了同样的错误,因为你的目录中仍然有两个 git repo。
你可以像这样删除 repo。
rm -rf .git
我建议你在临时副本上做实验。
选项 2(为我工作)
我所做的只是复制里面的所有文件,创建一个不同名称的新文件夹,粘贴所有文件,删除旧文件,然后将新文件重命名为旧文件。通过这样做,您将拥有一个 git free 目录,然后您可以使用 git init
方法简单地创建一个新的 repo。
这是你应该如何创建
git init
heroku create
git add .
git commit -am "initial commit"
git push heroku master
这应该可以解决错误,它已经为我解决了,所以我不太可能再处理它了,但是如果我的答案在任何方面都不正确,请告诉我。
【讨论】:
【参考方案2】:经过几次尝试,我认为问题的原因可能是 中断 git push heroku master
命令,然后重新执行相同的命令,导致错误下面:
remote: ! Push failed
remote: !
remote: ! ## Warning - The same version of this code has already been built: 31199a7acec03a3cb614ebaaf6c7720cee6684bd
remote: !
remote: ! We have detected that you have triggered a build from source code with version 31199a7acec03a3cb614ebaaf6c7720cee6684bd
remote: ! at least twice. One common cause of this behavior is attempting to deploy code from a different branch.
remote: !
所以我所做的是,我推送了另一个提交,然后重试了相同的命令git push heroku master
,这导致部署成功。
另外,感谢RainXCat's answer and insights,现在我知道 Heroku 不允许在同一个目录/文件夹中存在两个 git 存储库。
【讨论】:
【参考方案3】:安装 Heroku CLI 下载并安装 Heroku CLI。
如果您还没有,请登录您的 Heroku 帐户并按照提示创建新的 SSH 公钥。
$ heroku login
克隆存储库 使用 Git 将项目的源代码克隆到本地机器。
$ heroku git:clone -a project
$ cd project
部署您的更改 对刚刚克隆的代码进行一些更改,然后使用 Git 将它们部署到 Heroku。
$ git add .
$ git commit -am "make it better"
$ git push heroku master
【讨论】:
以上是关于Heroku - git push/deployment 期间出错,此代码的相同版本已经构建的主要内容,如果未能解决你的问题,请参考以下文章