我正在尝试使用EGit为我的Eclipse项目设置git存储库。但是,我在从存储库中排除root / project目录时遇到问题。那就是,我的项目有结构:
ProjectDirectory
src
war
etc
我希望存储库包含src
,war
和etc
,但不包含父目录ProjectDirectory
。这是因为如果我想在我的工作区{@ 1}}中克隆项目的副本,第二个项目的存储库现在将尝试创建第二个根目录ProjectDirectory2
。不幸的是,当我尝试使用EGit为项目添加存储库时,我似乎只能使用Team>在项目文件夹本身上共享项目,我似乎无论如何都要从Eclipse中排除存储库中的根目录。
有关如何使用EGit跳过存储库中的顶级目录的任何建议?我更喜欢能够在Eclipse中完成所有工作,但如果没有办法,有没有办法以这种方式在git之外设置存储库,那么仍然可以定期使用git控件跳过顶级目录的存储库中的git内?非常感谢。
答案 0 :(得分:5)
简短回答是EGIT + M2E 可能
技巧是在做共享项目时 - >在配置git repo窗口
确保在项目的父文件夹中使用或创建存储库
并确保单击“创建存储库按钮”
这样做的主要目的是在项目根目录
中创建.git文件夹不高于您的项目根目录。
答案 1 :(得分:2)
您应该提交项目根目录有多种原因:
答案 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分钟内完成:
将远程git repo克隆到本地文件系统中..例如:~/git/project_repo_root
像往常一样创建你的eclipse项目......例如:~/workspace/eclipse_project_root
从eclipse中删除项目(但不是文件系统!)
打开文件管理器并将刚刚创建的eclipse项目从〜/ workspace / root移动到〜/ git
mv ~/workspace/eclipse_project_root ~/git/
将.git /文件夹从repo文件夹移动到eclipse项目根文件夹:
mv ~/git/project_repo_root/.git ~/git/eclipse_project_root
使用shell进入/ eclipse_project_root /并对repo中所需的所有文件执行常用的命令行命令:
git add <abc>; .. commit; .. push
返回Eclipse并转到Git Perspective,然后单击“将现有本地Git仓库添加到此视图”。选择您正在使用的git仓库,一旦您说好,就应该使用该仓库的条目更新视图。
在视图中看到本地仓库后,您可以右键单击它并选择导入项目
回到主要的开发视角(Java等),您应该在包浏览器视图的根节点上看到带有Git标记的项目。
~~~~~
此时,您应该看到您刚刚移动的eclipse项目文件夹(在此处描述的示例中为〜/ git)
我意识到这比我想要的答案更冗长,但对于这个特殊的挑战/解决方案......我不知道有一种更简单的方法。
至于上面描述的帖子你应该总是包含eclipse项目根目录..现实是一些项目/客户/等要求git repo不包含根文件夹。所以像这样的解决方案是必要的有时候