如何从 Git 源代码管理下的子文件夹中创建一个单独的 Eclipse 项目
How to make a separate Eclipse project out of a subfolder under Git source-control
我有一个网站项目,主要文件位于根文件夹中,管理工具位于子文件夹中。管理工具包括一些来自根文件夹的 类。
我想使用 Git 对 'site'(根目录)和 'admin tool'(子文件夹)进行单独的版本控制。 Git 忽略根目录中的子文件夹和子文件夹中的单独存储库,这工作正常。
但是,我喜欢使用 Eclipse (4.4.2) 作为我的 Git GUI,但 Eclipse 以项目为基础进行管理,当我尝试在 Eclipse 的子文件夹中创建一个新项目时,它会抱怨说这不允许,因为该文件夹已经是另一个项目(根文件夹)的一部分。
有没有办法,就像在Git中一样,让Eclipse忽略项目中的子文件夹,以便我可以创建子文件夹的单独项目?还是我应该以不同的方式处理整个事情?
正确又方便的方法:
您可以使用 git-subtree 命令从该文件夹中创建子模块。
创建子模块后,您将能够将项目作为两个 git 存储库进行管理,一个嵌套在另一个存储库中。 Eclipse 必须理解此结构 并允许进行单独提交。您还可以为每个子项目拥有不同的远程存储库。
这是一本关于 git-子树的好手册:
Detach (move) subdirectory into separate Git repository
不太正确和方便的方法。
您可以在 .git 中添加该子文件夹,忽略主文件夹,然后在其中启动一个新的 repo。
不幸的是,在使用子模块时,Eclipse 不会直观地指示单独的更改,并且在 Eclipse 中将根文件夹和子文件夹作为单独的项目进行管理有助于我将事情分开组织。 这就是我选择的原因。git忽略根文件夹中的子文件夹并在子文件夹中创建一个单独的 repo。
将它引入 Eclipse 很麻烦,因为 Eclipse 中有一些 known bugs(具有讽刺意味的是)使 EGit 忽略 .gitignore 文件。这使得 Eclipse 坚持提交它在子文件夹中找到的 .git 文件夹作为子模块,即使它应该忽略它。
我现在使用以下步骤设置了所有内容:
- 创建子文件夹的 符号 link (Windows) 到根文件夹旁边的文件夹。这有助于绕过 Eclipse 在本身已经是项目的文件夹的子文件夹中创建项目的限制。
- 在将项目 添加到 Eclipse 之前创建存储库,否则
Eclipse 不会使用 .gitignore 文件。即使您使用 EGit 来
创建它们。
- 使用 Unix 风格换行符 编写 .gitignore 文件,使用 正斜杠 忽略 / 子文件夹. Git 本身可以很好地处理其他格式,但 Eclipse 不会正确使用 .gitignore,如果它不是那样写的话。
- 收拾东西;通过在项目上添加 Recourse Filter 从项目树中隐藏子文件夹,从 'site'(根)项目中隐藏子文件夹。这样,'admin tool' 子文件夹中的文件只能通过它自己的项目在 Eclipse 中访问。
我现在在 Eclipse 中有两个独立的项目,每个项目都有自己的 Git 存储库,尽管从技术上讲,一个是另一个的子文件夹。
我在这个post关于managing a subfolder as a project in Eclipse, Git and FTP.
写了一个详细的教程
我有一个网站项目,主要文件位于根文件夹中,管理工具位于子文件夹中。管理工具包括一些来自根文件夹的 类。
我想使用 Git 对 'site'(根目录)和 'admin tool'(子文件夹)进行单独的版本控制。 Git 忽略根目录中的子文件夹和子文件夹中的单独存储库,这工作正常。
但是,我喜欢使用 Eclipse (4.4.2) 作为我的 Git GUI,但 Eclipse 以项目为基础进行管理,当我尝试在 Eclipse 的子文件夹中创建一个新项目时,它会抱怨说这不允许,因为该文件夹已经是另一个项目(根文件夹)的一部分。
有没有办法,就像在Git中一样,让Eclipse忽略项目中的子文件夹,以便我可以创建子文件夹的单独项目?还是我应该以不同的方式处理整个事情?
正确又方便的方法:
您可以使用 git-subtree 命令从该文件夹中创建子模块。
创建子模块后,您将能够将项目作为两个 git 存储库进行管理,一个嵌套在另一个存储库中。 Eclipse 必须理解此结构 并允许进行单独提交。您还可以为每个子项目拥有不同的远程存储库。
这是一本关于 git-子树的好手册: Detach (move) subdirectory into separate Git repository
不太正确和方便的方法。
您可以在 .git 中添加该子文件夹,忽略主文件夹,然后在其中启动一个新的 repo。
不幸的是,在使用子模块时,Eclipse 不会直观地指示单独的更改,并且在 Eclipse 中将根文件夹和子文件夹作为单独的项目进行管理有助于我将事情分开组织。 这就是我选择的原因。git忽略根文件夹中的子文件夹并在子文件夹中创建一个单独的 repo。
将它引入 Eclipse 很麻烦,因为 Eclipse 中有一些 known bugs(具有讽刺意味的是)使 EGit 忽略 .gitignore 文件。这使得 Eclipse 坚持提交它在子文件夹中找到的 .git 文件夹作为子模块,即使它应该忽略它。
我现在使用以下步骤设置了所有内容:
- 创建子文件夹的 符号 link (Windows) 到根文件夹旁边的文件夹。这有助于绕过 Eclipse 在本身已经是项目的文件夹的子文件夹中创建项目的限制。
- 在将项目 添加到 Eclipse 之前创建存储库,否则 Eclipse 不会使用 .gitignore 文件。即使您使用 EGit 来 创建它们。
- 使用 Unix 风格换行符 编写 .gitignore 文件,使用 正斜杠 忽略 / 子文件夹. Git 本身可以很好地处理其他格式,但 Eclipse 不会正确使用 .gitignore,如果它不是那样写的话。
- 收拾东西;通过在项目上添加 Recourse Filter 从项目树中隐藏子文件夹,从 'site'(根)项目中隐藏子文件夹。这样,'admin tool' 子文件夹中的文件只能通过它自己的项目在 Eclipse 中访问。
我现在在 Eclipse 中有两个独立的项目,每个项目都有自己的 Git 存储库,尽管从技术上讲,一个是另一个的子文件夹。 我在这个post关于managing a subfolder as a project in Eclipse, Git and FTP.
写了一个详细的教程