在 Eclipse 项目的二进制端发现的镜像 Git 存储库
mirror image Git repository discovered in the binary side of an Eclipse project
我将回到两年前的 Eclipse 和 Java 项目。我想我会试试 SmartGit。我已经允许 SmartGit 找到我的 git 存储库,这些存储库以前是在命令行上管理的。令我惊讶的是,它发现了 8 个存储库,而我预计只有 4 个。例如,in
.../bin
/com/domain/utilities
SmartGit 找到了一个存储库并告诉我所有的 .java 文件都丢失了并且所有的 .class 文件都没有被跟踪.这似乎很奇怪。我不记得在二进制端创建了一个 Git 存储库。
更有意义的是
../src
/com/domain/utilities
列为 "modified" 的文件与我记得我最近正在编辑的文件相对应。源端似乎如预期的那样。
回到命令行并查看 git log
的提交历史,我可以看到二进制日志与源日志完全相同,精确到秒。当然,人类不可能同时提交二进制文件和提交源代码。
我之前曾在 2012 年 10 月尝试使用 EGit 但放弃了该尝试。 EGit 是否可能负责在二进制端创建这个奇怪的存储库(但所有 .java 文件都丢失并且 .class 文件未被跟踪?)
如果这个镜像提交日志不是Git的正常输出,我会删除二进制端的整个.git文件夹。我想在这里post看看是否可以确认Git没有理由创建这个
很简单。 git 知道文件夹是 git 项目的根目录,因为它包含 .git
目录。
您的 src
目录显然是根 git 目录。
然后您的构建过程(或只是 Eclipse)将每个 non-Java 文件递归地复制到 bin
。其中包括 .git
目录。
因此,当您在 bin 中时,git 正确地认为它是 git 项目的根目录(因为它有一个 .git 目录);它正确地说所有 Java 文件都丢失了(因为它们已被编译器替换为 .class
文件),并且它正确地说所有 .class
文件都未跟踪(因为你对此类文件没有任何忽略规则)。
因此你有两个问题:
- 根 git 文件夹从一开始就是
src
的父目录:它包含源代码,但我想,您的构建文件、脚本、文档、等等 应该 也被版本化为 git.
- 因为
src
是根并且包含 .git
目录,构建应该忽略 .git
目录而不是将它复制到 bin
.
我将回到两年前的 Eclipse 和 Java 项目。我想我会试试 SmartGit。我已经允许 SmartGit 找到我的 git 存储库,这些存储库以前是在命令行上管理的。令我惊讶的是,它发现了 8 个存储库,而我预计只有 4 个。例如,in
.../bin
/com/domain/utilities
SmartGit 找到了一个存储库并告诉我所有的 .java 文件都丢失了并且所有的 .class 文件都没有被跟踪.这似乎很奇怪。我不记得在二进制端创建了一个 Git 存储库。
更有意义的是
../src
/com/domain/utilities
列为 "modified" 的文件与我记得我最近正在编辑的文件相对应。源端似乎如预期的那样。
回到命令行并查看 git log
的提交历史,我可以看到二进制日志与源日志完全相同,精确到秒。当然,人类不可能同时提交二进制文件和提交源代码。
我之前曾在 2012 年 10 月尝试使用 EGit 但放弃了该尝试。 EGit 是否可能负责在二进制端创建这个奇怪的存储库(但所有 .java 文件都丢失并且 .class 文件未被跟踪?)
如果这个镜像提交日志不是Git的正常输出,我会删除二进制端的整个.git文件夹。我想在这里post看看是否可以确认Git没有理由创建这个
很简单。 git 知道文件夹是 git 项目的根目录,因为它包含 .git
目录。
您的 src
目录显然是根 git 目录。
然后您的构建过程(或只是 Eclipse)将每个 non-Java 文件递归地复制到 bin
。其中包括 .git
目录。
因此,当您在 bin 中时,git 正确地认为它是 git 项目的根目录(因为它有一个 .git 目录);它正确地说所有 Java 文件都丢失了(因为它们已被编译器替换为 .class
文件),并且它正确地说所有 .class
文件都未跟踪(因为你对此类文件没有任何忽略规则)。
因此你有两个问题:
- 根 git 文件夹从一开始就是
src
的父目录:它包含源代码,但我想,您的构建文件、脚本、文档、等等 应该 也被版本化为 git. - 因为
src
是根并且包含.git
目录,构建应该忽略.git
目录而不是将它复制到bin
.