在 Intellij 中从 Ant 迁移到 Grade 时如何保留 git 信息?

How to preserve git information when migrating from Ant to Grade in Intellij?

我使用 Ant 作为构建工具在 Intellij 中开发了两个版本的 java 库。我正在为 VCS 使用 git。它有所有血淋淋的更新日志、版本标签、检查点等。

我最近决定切换到基于 Gradle 的建筑以用于未来的工作。我的 IDE 保持不变 - Intellij。虽然我已经成功地配置了我的 build.gradle 文件(新项目的),但我的旧源代码现在可以作为 Maven 依赖项发布

  1. 我对如何迁移 git 信息感到困惑。如何实现?

在我的脑海中,我可以想出几种方法来做到这一点,尽管我非常不确定。如果他们 bad/good.

,请向他们开枪 down/affirm

环境:
IDE:Intellij 2020.3
Gradle: 7.2
OS: Windows 20H2
git: 2.33.0.windows.1(假设所有回购都是本地的)
蚂蚁:找不到版本


常见问题

What have you done so far?

我在 Intellij 中创建了一个基于 Gradle 的新项目。然后我手动将我的源文件复制到新项目的源代码中。然后我修改了这个项目的 build.gradle 文件,所以在这个新头像中一切正常。

So what's your problem?

我基于 Ant 的旧项目的根文件夹中有 .git。我的基于 Gradle 的新项目暂时没有。如果我在新项目的根目录中 git init,则基本相同源代码的早期 VCS 信息将丢失。另一方面,如果我盲目地将 .git 转移到新文件夹中,当它在外部目录中醒来时, git 不会感到惊讶吗?我该怎么办?

Why did you not just clone the repo and modified it till it became a Gradle project, then opened that in Intellij?

这样做很麻烦,充满配置问题并且不利用工具。当在 Intellij 中创建一个新的 Gradle 项目时,它会自动创建很多东西 - Intellij 特定的配置、Gradle 特定的配置、一些其他的幕后内容等等。要转换一个非 Gradle dir 在某种程度上类似于 Intellij Gradle 项目对我来说似乎很重要,更不用说它可能会以休眠方式被破坏。另一方面,仅传输源要容易得多。如何不松旧。git 那么问题来了。

最好的做法是将 .git 文件夹与任何 source/test files/resources.

文件夹一起从旧项目文件夹移动到新项目文件夹

在一个可以直接从 Ant 项目拉入 Gradle 项目的世界里,一个 repo。正如@BoristheSpider 所建议的那样,克隆就足够了。然而,正如我在评论中所建议的那样,克隆然后修改 Ant 项目直到它成为 Gradle 项目既不容易也不实用,尤其是当 IDE 将创建一个新的项目时Gradle 适合您的项目或计划使用 IDE 的项目。

在这种情况下,移动 .git(和相关资源)与克隆 Ant 存储库完全相同。只有这一次,IDE 为您完成了不需要改装。

... On the other hand, if I blindly transfer the .git to the new folder, won't git be surprised when it wakes up in a foreign directory?

嗯,Git可以应付。尽管 Git 的典型用途是围绕对项目的增量更改进行簿记,并且很少废弃整个 repo 目录,但它没有区别。至 Git。即使目录中只剩下 .git 添加更多内容也不会破坏 VCS 与旧文件的连续性。可以把它看作是开始一本新书来代替通常的章节。