Eclipse - 从git存储库中排除根目录?

gol*_*enk 6 eclipse git eclipse-plugin egit

我正在尝试使用EGit为我的Eclipse项目设置一个git存储库.但是,我在从存储库中排除root/project目录时遇到问题.那就是,我的项目有以下结构:

ProjectDirectory
    src
    war
    etc
Run Code Online (Sandbox Code Playgroud)

我希望存储库包含src,waretc,但不包含父目录ProjectDirectory.那是因为如果我想在我的工作区中克隆项目的副本,ProjectDirectory2第二个项目的存储库现在将尝试创建第二个根目录,ProjectDirectory.不幸的是,当我尝试使用EGit为项目添加存储库时,我似乎只能在项目文件夹本身上使用Team> Share Project,而我似乎无论如何都不会从存储库中排除根目录在Eclipse中.

有关如何使用EGit跳过存储库中的顶级目录的任何建议?我更喜欢能够在Eclipse中做所有事情,但是如果没有办法,有没有办法在git之外以这种方式设置存储库,那么仍然可以在git中定期使用git控件存储库跳过顶级目录?非常感谢你.

Jun*_*Liu 5

简短的回答是它与EGIT + M2E 是可能的

诀窍是在共享项目 - >在配置git repo窗口中

确保在项目的父文件夹中使用或创建存储库

并确保单击"创建存储库"按钮

这样做的主要目的是在项目根目录中创建.git文件夹

不高于您的项目根目录.


Ban*_*zen 1

您应该出于多种原因提交项目根目录:

  • 如果您仅提交项目的子目录,您将错过隐藏在项目根目录下的文件和文件夹(例如 .settings 目录等)。这些也需要提交,否则您的项目将丢失信息,并且可能不会在另一台机器上产生相同的结果。
  • 您想要在同一个工作区中再次尝试克隆同一个存储库的愿望听起来很像您应该重新阅读有关 git 分支的内容。在 git 中,分支之间的切换是在眨眼之后完成的,因此在处理项目的不同功能、版本或其他不同版本时应该使用分支。
  • Eclipse 项目名称和磁盘上的底层文件夹名称不需要相同(创建新项目时请注意“使用默认位置”复选框)。因此,您可以签出具有不同名称的项目的第二个克隆。
  • 如果您稍后向工作区添加更多项目(例如测试项目),您将无法轻松地将它们共享到同一个 git 存储库中,因为这些附加项目的内容会与存储库中第一个项目的子目录混合。

  • 因此,我理解想要包含 .settings 等子目录,但这些子目录仍然可以按照我建议的方式包含在存储库中。我还注意到,我在网上看到的几乎每个项目(例如在 github 上)都排除了我想要做的顶级目录(即,而不是 projectRepository/projectFolder/src ,它是 github 上的存储库,看起来像 projectRepository/src )。如果你的建议有优势,为什么所有这些项目都这样做?感谢您及时的回复。 (4认同)