我将从两年前回到Eclipse和Java项目。我想我会尝试一下SmartGit。我已经允许SmartGit找到以前在命令行上管理的git存储库。令我惊讶的是,当我只预期4时,它找到了8个存储库。例如,在
中 ... / bin
/ COM /域/效用
SmartGit找到了一个存储库并告诉我所有.java文件都丢失了,所有.class文件都没有跟踪。这看起来很奇怪。我不记得在二进制方面创建一个Git存储库。
更有意义的是
../ src
/ COM /域/效用
列为"已修改的文件"对应于我记得我最近编辑的内容。来源方似乎如预期。
回到命令行并查看来自git log
的提交历史记录我可以看到二进制日志与源日志相同,直到第二个日志。当然,在二进制文件中提交并同时在源代码中提交是不可能的。
我之前曾试图在2012年10月使用 EGit ,但放弃了这一尝试。 EGit可能负责在二进制方面创建这个奇怪的存储库(但缺少所有.java文件和.class文件没有跟踪?)
如果此镜像提交日志不是Git的正常输出,我将删除二进制端的整个.git文件夹。我想在这里发帖,看看是否可以确认Git没有理由创建它。
答案 0 :(得分:2)
这很简单。 git知道文件夹是git项目的根,因为它包含一个.git
目录。
您的src
目录显然是根git目录。
您的构建过程(或只是Eclipse)将递归地复制每个非Java文件到bin
。这包括.git
目录。
所以,当你在bin中时,git正确地认为它是git项目的根(因为它有一个.git目录);它正确地说所有Java文件都丢失了(因为它们已被编译器的.class
文件替换),并且它正确地说所有.class
文件都没有被跟踪(因为你没有'对这些文件有任何忽略规则。)
你有两个问题:
src
的父目录:它包含了源代码,但我认为,你的构建文件,脚本,文档等等 也应该被版本化为git。src
是根目录并且包含.git
目录,因此构建应忽略该.git
目录,而不是将其复制到bin
。