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

时间:2013-03-22 14:21:23

标签: eclipse git eclipse-plugin egit

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

ProjectDirectory
    src
    war
    etc

我希望存储库包含srcwaretc,但不包含父目录ProjectDirectory。这是因为如果我想在我的工作区{@ 1}}中克隆项目的副本,第二个项目的存储库现在将尝试创建第二个根目录ProjectDirectory2。不幸的是,当我尝试使用EGit为项目添加存储库时,我似乎只能使用Team>在项目文件夹本身上共享项目,我似乎无论如何都要从Eclipse中排除存储库中的根目录。

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

4 个答案:

答案 0 :(得分:5)

简短回答是EGIT + M2E 可能

技巧是在做共享项目时 - >在配置git repo窗口

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

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

这样做的主要目的是在项目根目录

中创建.git文件夹

不高于您的项目根目录。

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

如果你有maven项目,你通常会想要创建一个没有egit创建的项目文件夹的存储库。根据我的经验,使用egit插件是不可能的。 但是可以通过git命令行轻松完成。

首先将您现有的eclipse / maven项目从eclipse工作区移动到您的git文件夹中(这也是egit插件所做的):

mv myproject ~/git/

接下来创建一个新的git存储库

cd ~/git/myproject
git init

现在创建一个.gitignore文件并将其放入新的存储库文件夹(〜/ git / myproject / .gitignore)。这是.gitignore文件的示例:

# ignore all bin directories
# matches "bin" in any subfolder
bin/

# ignore all target directories
target/

# ignore all files ending with ~
*~ 

# ignore eclipse directories and project files
.settings/
.project
.classpath

最后使用项目内容初始化您的新存储库

git add *
git commit -m "My initial commit message"

多数民众赞成。 现在,您可以重新启动eclipse并从新的git存储库重新导入项目。 进入你的eclipse egit存储库视图并进行'import exisiting project'。

答案 3 :(得分:0)

这是我的解决方案。虽然不是特别优雅 - 步骤都很简单,但它可以工作,并且可以在大约10分钟内完成:

  1. 将远程git repo克隆到本地文件系统中..例如:~/git/project_repo_root

  2. 像往常一样创建你的eclipse项目......例如:~/workspace/eclipse_project_root

  3. 从eclipse中删除项目(但不是文件系统!)

  4. 打开文件管理器并将刚刚创建的eclipse项目从〜/ workspace / root移动到〜/ git

    mv ~/workspace/eclipse_project_root ~/git/

  5. 将.git /文件夹从repo文件夹移动到eclipse项目根文件夹:

    mv ~/git/project_repo_root/.git ~/git/eclipse_project_root

  6. 使用shell进入/ eclipse_project_root /并对repo中所需的所有文件执行常用的命令行命令:

    git add <abc>; .. commit; .. push

  7. 返回Eclipse并转到Git Perspective,然后单击“将现有本地Git仓库添加到此视图”。选择您正在使用的git仓库,一旦您说好,就应该使用该仓库的条目更新视图。

  8. 在视图中看到本地仓库后,您可以右键单击它并选择导入项目

  9. 回到主要的开发视角(Java等),您应该在包浏览器视图的根节点上看到带有Git标记的项目。

  10. ~~~~~

    此时,您应该看到您刚刚移动的eclipse项目文件夹(在此处描述的示例中为〜/ git)

    我意识到这比我想要的答案更冗长,但对于这个特殊的挑战/解决方案......我不知道有一种更简单的方法。

    至于上面描述的帖子你应该总是包含eclipse项目根目录..现实是一些项目/客户/等要求git repo不包含根文件夹。所以像这样的解决方案是必要的有时候