Heroku - git push/deployment 期间出错,已构建此代码的相同版本

Heroku - Error during git push/deployment, The same version of this code has already been built

我在将 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 中。我已经根据这个问题的答案尝试了下面的命令,

git push heroku master:main

但错误依然存在。我可以在 Heroku CLI 上尝试使用任何命令来解决这个问题吗?

我和你在同一天遇到了同样的错误,我不知道这是否是你正在寻找的答案,但我以某种方式解决了这个问题。我正在制作 Django-Rest-Api.

原因

您在同一个 folder/directory 中创建了两个 git 存储库,并将相同的代码推送到它们的头部,但 Heroku 不希望您这样做去做。 请记住,同一级别上没有两个 git 回购协议

关于 git push heroku master:main 的事情

Heroku 仅从 main/master 分支部署您的代码 所以如果你不是从 master 推送,你必须像 git push heroku <new branch>:main 一样使用它,使用 :mainmaster 是没有意义的(相同)。

解决方案

选项 1(不适合我)

我不记得我是从哪里得到这个的,但你必须创建一个 新的 git 分支 , 做

git branch <new branch>
git checkout <new branch>
git add .
git commit -am "commit message"
git push heroku <new branch>:main

但它给出了同样的错误,因为您的目录中仍然有两个 git 存储库。

您可以像这样删除存储库。

rm -rf .git

我建议你在临时副本上做实验。

选项 2(为我工作)

我所做的就是把里面的所有文件都复制过来,新建一个不同名字的文件夹,粘贴所有文件,把旧的删掉,把新的重命名为旧的。通过这样做,您将拥有一个 git 自由目录,然后您可以使用 git init 方法简单地创建一个新的 repo。

这里是你应该如何创建

git init
heroku create
git add .
git commit -am "initial commit"
git push heroku master

这应该可以解决错误,它已为我解决,所以我不太可能再继续处理它,但如果我的回答有任何不正确之处,请告诉我。

经过几次尝试,我认为问题的原因可能是 中断 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,结果部署成功。

此外,请大声疾呼 ,现在我知道 Heroku 不允许在同一个 directory/folder.

上使用两个 git 存储库

安装 Heroku CLI 下载并安装 Heroku CLI。

如果您还没有登录到您的 Heroku 帐户并按照提示创建一个新的 SSH public 密钥。

$ heroku login

克隆存储库 使用 Git 将项目的源代码克隆到您的本地计算机。

$ heroku git:clone -a project







$ cd project

部署您的更改 对刚刚克隆的代码进行一些更改,然后使用 Git.

将它们部署到 Heroku
$ git add .
$ git commit -am "make it better"
$ git push heroku master

这对我有用!

git branch <new branch>
git checkout <new branch>
git add .
git commit -am "commit message"
git push heroku <new branch>:main

git push --set-upstream heroku <new branch>

this worked for me.