首页 > 解决方案 > 从 Ant 迁移到 Intellij 中的 Grade 时如何保留 git 信息?

问题描述

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

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

  1. 我对如何迁移 git 信息感到困惑。如何做到这一点?

在我的脑海中,我可以想到一些方法来做到这一点,尽管我非常不确定。如果他们是坏的/好的,一定要把他们击落/肯定他们。


环境:
IDE:Intellij 2020.3
Gradle:7.2
操作系统:Windows 20H2
git:2.33.0.windows.1(假设所有存储库都是本地的)
Ant:找不到版本


常见问题

到目前为止你做了什么?

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

那么你的问题是什么?

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

为什么你不只是克隆 repo 并对其进行修改,直到它成为一个 Gradle 项目,然后在 Intellij 中打开它?

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

标签: gitgradleintellij-ideamigration

解决方案


最好的做法是将.git文件夹与任何源/测试文件/资源​​一起从旧项目文件夹移动到新文件夹。

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

在这种情况下,移动.git(和相关来源)与克隆 Ant 存储库完全相同。只是这一次,IDE 无需修改即可为您做到这一点。

...另一方面,如果我盲目地将.git转移到新文件夹中,当它在外部目录中醒来时,它不会感到惊讶吗?

好吧,Git 可以处理它。尽管 Git 的典型使用围绕着记录项目的增量更改,并且很少废弃整个 repo 目录,但它没有任何区别。到 Git。即使目录中唯一剩下的就是.git添加更多内容,也不会破坏 VCS 与旧文件的连续性。把它想象成开始一本新书来代替通常的章节。


推荐阅读