我有一个网站项目,主文件位于根文件夹中,管理工具位于子文件夹中。管理工具包括根文件夹中的几个类。
我想通过Git对'site'(root)和'admin tool'(子文件夹)保持单独的版本控制。使用Git忽略根目录中的子文件夹和子文件夹中的单独存储库,这可以正常工作。
但是,我喜欢使用Eclipse(4.4.2)作为我的Git GUI,但Eclipse在项目基础上管理它,当我尝试在Eclipse的子文件夹中创建一个新项目时,它抱怨这是不允许的,因为该文件夹已经是另一个项目(根文件夹)的一部分。
有没有办法,就像在Git中一样,让Eclipse忽略项目中的子文件夹,以便我可以创建子文件夹的单独项目?或者我应该以不同的方式处理整个事情?
答案 0 :(得分:1)
您可以使用git-subtree命令从该文件夹中创建一个子模块。
制作子模块后,您将能够将项目作为两个git repos管理,一个嵌套在另一个中。 Eclipse必须理解这个结构并允许进行单独的提交。您还可以为每个子项目提供不同的远程存储库。
这是一本关于git-subtree的好手册: Detach (move) subdirectory into separate Git repository
您可以在主文件夹的.gitignore中添加该子文件夹,然后在其中启动一个新的repo。
答案 1 :(得分:0)
将这个带到Eclipse是一件麻烦事,因为Eclipse中有一些known bugs(具有讽刺意味)使EGit忽略.gitignore文件。这使得Eclipse坚持将它在子文件夹中找到的.git文件夹作为子模块提交,即使它应该忽略它。
我现在可以使用以下步骤设置所有内容:
我现在在Eclipse中有两个独立的项目,每个项目都有自己的Git存储库,即使其中一个在技术上是另一个的子文件夹。 我在这篇关于managing a subfolder as a project in Eclipse, Git and FTP。
的文章中写了一篇关于此的详细教程