源控制额外文件到已创建的存储库(例如二进制文件)

时间:2015-09-08 15:32:16

标签: java git

我提前道歉,问这个问题可能看起来非常令人困惑。

我前段时间创建了一个存储库,只是重新格式化了我的计算机,所以我试图恢复所有文件。但是,当我创建这个存储库(https://github.com/F-Tahir/BMRCalculator)时,我只控制java项目的src文件夹中的文件(这是正确的方法吗?)。

我想控制整个java项目文件夹(所以bin文件夹,我添加的额外图像文件夹等)。这是一个很好的方法,或者我应该只控制src文件夹吗?

如果是这样,我该如何添加这些额外的文件夹并保留旧的提交历史记录?我可以通过创建一个新的存储库来实现它,但之后我就不会有任何旧的提交。

由于

1 个答案:

答案 0 :(得分:1)

将需要版本化的所有文本文件放入版本控制中。如果您正在使用Maven等,这通常包括您的src目录,配置文件,pom.xml文件。

不是一个好主意将二进制文件放入源控件如果它们很大和/或经常更改并且绝对不会生成像target这样的文件。原因是版本控制像git版本文件,通过跟踪版本之间的差异,这对于二进制文件不起作用。它们使您的历史变得混乱,并且经常导致巨大的存储库占用大量空间和二进制文件的历史。

但是,版本控制中没有关于二进制文件的严格规则。有些人甚至support it。如果您的二进制文件很小且稳定(例如Web项目中的图像),那么只需包含它们就可以了。

如何处理二进制文件取决于它们是什么。对于jar包,有像Nexus这样的存储库。有unix包的存储库(例如rpms)。如果它们是大文件,请将它们放在备份的专用位置。

最后一个选项(我承认也会使用一次或两次)将为您的二进制文件和limit the history设置不同的存储库,以便它不会占用太多空间但是你只会(有点)滥用git作为备份工具。

您还可以查看一些相关问题:

查看您的存储库后

更新:

  • 通常我不会将IDE设置(由Eclipse生成的.settings.project.classpath)放到源代码管理中,因为它们经常会发生变化。因为在您的情况下没有其他任何内容包含项目信息,我建议使用Maven。
  • bin/README.md移至您的根目录。
  • 删除bin目录。它包含重复的图像和.class文件。它们由IDE自动生成,因此它们不包含新信息并经常更改。