【问题标题】:Creating a new root directory in an Eclipse project under version control在版本控制下的 Eclipse 项目中创建新的根目录
【发布时间】:2016-03-06 02:58:51
【问题描述】:

我正在为我的软件工程课程做一个小组项目,我的教授指出我在 Github 上设置的目录结构不正确。我现在想纠正这个问题以避免扣分,但我对使用 Git 很陌生。基本上我们在 Github 上的结构如下。

src
--main
----java
------Source Files
--test
-----java
------Test Files
Various Ivy/Ant build files
.classpath
.gitignore
.git
.project
README.md

我需要创建一个名为 CodeComp 的新目录,它将包含上面的目录结构,但 README.md 除外,它应该与 CodeComp 目录处于同一级别。

由于我们的成绩取决于提交历史记录,因此需要保留。有没有一种简单的方法可以做到这一点,还是我们最好只从最终项目成绩中扣除一点点?

更新: 以防其他人将来必须这样做:

  1. 转到保存项目的文件夹并创建新目录。
  2. 将所有需要的文件移到新目录中,.* 文件除外。刷新 Eclipse。
  3. 无论 Eclipse 错误如何,都提交目录更改并将其推送到存储库。
  4. 从存储库中手动删除 .classpath、.gitignore 和 .project 文件。
  5. 备份您的 .classpath 和 .gitignore 文件。删除存储库的本地副本并重新克隆它。
  6. 导入 Git 项目并选择将项目文件放在新创建的目录中。
  7. 将您备份的 .classpath 和 .gitignore 复制到新的项目目录中。推送更改。

【问题讨论】:

  • 关于你的提交历史,github 的提交历史真的很容易编辑。您甚至可以伪造上传时间。但是,嘿,我想知道它是否属于学术不诚实:p
  • 实际上,您当前的结构看起来比建议的结构更好。采用当前方法更为标准。除了目标目录,它不应该在 Git 中。
  • 这只是为了显示每个学生在年级的各个部分对项目的贡献。我目前已经完成了 80% 的项目,所以我真的不想失去历史。大声笑
  • @ErikPragt 哎呀。我的意思是 Eclipse 中的目录结构。我们在 Github 上没有 target/ 目录。我会编辑。
  • @James 啊,更好。好吧,就像我说的,我认为您当前的方法更好,而且我无法想象重构项目结构会影响您的成绩。否则:Git Rewrite History

标签: java eclipse git ant


【解决方案1】:

理论上,您应该能够使用标准文件浏览器将除 .git 和 Readme 文件之外的所有内容移动到新的子文件夹中,然后提交。

git 历史仍然存在,但它可能会将其视为两个单独的文件,一个已被删除,一个刚刚创建。根据我的经验,Git 并不喜欢移动文件。

无论如何,您的提交历史记录仍将保留在存储库中,与您移动文件时相比,它只是两个单独的部分。

但是,嘿……无论如何,展示这一举动可能是值得的。当我第一次了解版本控制时,我确信我正在到处移动文件。都是学习。

编辑:您可以通过在本地提交更改并在将其推送到 Github 之前检查历史记录来进行测试。

【讨论】:

  • 昨晚我试图弄清楚这一点时,我实际上尝试过。我在提交时让 Eclipse 看到了目录更改,但是移动 .project 文件破坏了 Eclipse 项目。我想知道我是否可以推送目录更改,删除 GitHub 上的 .project 文件,删除我的本地克隆,然后重新克隆它。然后我可以在 Eclipse 中将它作为一个新的 Git 项目导入并创建一个新的项目文件。这可能不会破坏它。
  • 应该可以的,我以前做过。我不确定为什么它破坏了项目文件,但我的 .project 文件中没有任何与位置相关的数据。您可能只是从 Eclipse 工作区中删除该项目,然后在完成移动后重新导入该项目?
猜你喜欢
  • 1970-01-01
  • 2016-01-05
  • 2023-04-10
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 2013-10-17
  • 2012-08-30
  • 2021-03-25
相关资源
最近更新 更多