首页 > 解决方案 > 尝试将 Spring Boot 推送到 Git 存储库失败

问题描述

我有一个在 Eclipse 中创建的工作 Spring Boot 应用程序,我想将它放入一个新的 Git 存储库中。

不幸的是,我似乎无法使用 Eclipse(或任何其他 Git 工具)来执行此操作。

我正在使用 Eclipse v2019-06 (4.12.0) 和 Spring Tool Suite (STS) v4.3.1

为了说明问题,我采取以下步骤:

我使用 STS 创建 Spring Boot 项目:

Click on "Create a Project"->"Spring Boot"->"Spring Starter Project"

项目名称是 GitProject

这个项目没什么特别的。创建了一个返回一些 HTML 的 HelloController 类。运行浏览器对其进行测试并显示“问候”网页。

编译项目 mvnw clean package

编译成功。跑并成功显示网页:java -jar GitProject-0.0.1-SNAPSHOT.jar

项目成功,服务有效。将项目放入 Git

描述了创建和推送到新存储库的过程。根据 Stack Overflow 答案中提供的程序,执行以下操作:

  1. 创建存储库 git init

  2. 让它裸露 git init --bare

  3. 创建一个基本的 README 文件以添加到存储库 echo Testing > README

  4. 添加并提交 README 文件 git add README git commit -m "Initial Code"

现在将项目放入存储库。或者至少,尝试...

  1. 在不同的文件夹中创建一个项目,从新存储库导入单击“导入项目...”->“来自 Git 的项目”

从新存储库中克隆 URI,只有 master 分支可用。将目标放在项目文件夹中。因为新 repo 中没有现有项目,并且由于 IDE 没有提供从 repo 成功创建新 Spring Boot 项目的方法(我在创建repo。每次尝试都会导致在创建项目时抛出不同的异常),请在“选择向导”对话框中选择“导入为常规项目”。

  1. 转到包含原始 GitProject 项目的文件夹。复制该文件夹中的所有内容并将其粘贴到新项目中

  2. 编辑 Spring Boot 项目中包含的 .gitignore 文件。除 .sts4-cache 文件外,删除对 STS 文件的所有引用非常重要。这些需要至少保存一次,以确保将 Spring Boot 信息保存在存储库中。

  3. 右键单击项目并选择 Team->Commit

  4. 暂存所有内容,输入提交消息,然后单击“提交并推送”

    请参阅以下故障:

    master-master [远程拒绝] 存储库

    分支当前已签出错误:拒绝更新已签出分支:refs/heads/master 错误:默认情况下,拒绝在非裸存储库中更新当前分支,因为它会使索引和工作树与您的不一致推送,并且需要“git reset --hard”来将工作树与 HEAD 匹配。

    您可以在远程存储库中将“receive.denyCurrentBranch”配置变量设置为“忽略”或“警告”,以允许推送到其当前分支;但是,除非您安排更新其工作树以匹配您以其他方式推送的内容,否则不建议这样做。

    要消除此消息并仍保持默认行为,请将“receive.denyCurrentBranch”配置变量设置为“拒绝”。

奇怪的是,不知何故,这个分支在被克隆后仍然“签出”,但 IDE 似乎没有提供“重新签入”的方法。更糟糕的是:我实际上只是尝试克隆新的 repo,更改 README 文件,然后提交并推送它(不包括 Spring Boot 代码),但该尝试产生了同样的失败。

那么如何让这些代码提交并推送到我的存储库中呢?如何执行此操作的文档中缺少什么步骤???

标签: eclipsegitspring-boot

解决方案


推荐阅读