【问题标题】:What type of files to commit versus ignore in a Git repository?在 Git 存储库中提交和忽略什么类型的文件?
【发布时间】:2014-01-12 06:13:48
【问题描述】:

所以我想同时使用 GitHub 和 Bitbucket 作为存储库(取决于我是否希望某些东西是公开的还是私有的)并且我的很多工作还包括 LaTeX 工作(所以有 .tex、.png 和 .pdf 文件)以及速度测试(所以我可能有 .csv 和 .Rdata 文件)。

我很难确定哪些类型的文件应该进入我的存储库,哪些应该链接到 README.mds 中。

有没有人想分享任何简单的哲学或硬性规则?

【问题讨论】:

  • 大部分时间忽略生成的文件。
  • 忽略包含数据库凭据等敏感数据的配置文件。
  • 同意马特鲍尔,但包括“大部分时间”。对于很少更改需要特殊工具重新生成的生成文件,例外处理可能更合适。
  • @MattBall,这是否意味着,例如,忽略 .tex 文件的 .pdf 输出?
  • @StevieP:它发生了。是的,这很烦人,但你会发现它不值得担心。

标签: git gitignore


【解决方案1】:

通常,您会希望您的 repo 仅包含可以自动生成其他所有内容的文件。

例如,如果它是一个 C 程序,您将需要 *.c*.h 文件,以及任何 Makefile,但不是目标文件和可执行文件。这个想法是有人可以克隆您的存储库,按照您的构建说明,并重新创建使用您的项目所需的一切。

文本与二进制并不总是最好遵循的规则。例如,自动生成的.png 图像文件不需要在 repo 中,但如果它是您手动构建的图标文件(并且您的程序依赖于),它应该在 repo 中。

这不是硬性规定。有时包含生成的二进制文件可能很方便。例如(假设是一个应用程序),如果您将可安装的应用程序打包到 .zip.tgz.msi 文件中,则在 repo 中提供它是合理的(可能在单独的目录中)。如果您包含旨在成为应用程序的当前版本的类似内容,请确保在提交和推送之前它是最新的。

【讨论】:

    【解决方案2】:

    通常忽略二进制文件,尤其是大文件。 Git 不像 SVN 那样沉着地进行大型或二进制文件跟踪。

    如果必须,可以对小文件(即 png)进行例外处理,只要它们没有发生太大变化。

    【讨论】:

    • 我是新手。你能告诉我什么时候知道某个东西是二进制文件吗?比如是生成.pdf的二进制文件吗?
    • file -b -i file_name 是一个很好的 linux / mac 命令行命令,它应该返回文件的 mime 类型。来源:linux + identify binary file 通常,它会在您处理文本/ASCII 文件时告诉您。你可以(几乎)假设其他任何东西都是二进制的。
    猜你喜欢
    • 2010-11-11
    • 2018-07-07
    • 1970-01-01
    • 2019-03-19
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    相关资源
    最近更新 更多