【问题标题】:Should initial Git commit contain auto generated files?初始 Git 提交是否应该包含自动生成的文件?
【发布时间】:2014-08-12 14:49:12
【问题描述】:

到目前为止,我在没有版本控制软件的情况下进行开发,并且我的应用程序包含许多文件(功能、配置文件和自动生成的文件)。现在另外两个人将在这个项目上工作,所以我想使用 Git 进行合作。

我是 Git 新手。我刚刚在我的服务器上设置了 Git 存储库。我想在我的笔记本上进行开发,然后将更改提交到服务器。现在我不确定第一次提交应该是什么样子。

我应该将所有文件(自动生成的文件、配置文件和功能文件)包含在第一次提交中,以便我的同事可以轻松地签出并将完整的项目数据获取到他们的本地主机,还是应该只提交功能文件(不包括图片,自动生成的文件、配置文件等)?

如果我提交所有内容,他们可以签出然后忽略配置文件(因为他们必须编辑它们以适应他们的本地主机环境)和从未来提交中自动生成的文件。

这方面的最佳做法是什么?谢谢。

【问题讨论】:

    标签: git versioning


    【解决方案1】:

    最好的做法是创建一个 .gitignore 文件,忽略备份、编译文件、主机相关文件、ide 相关文件以及您在全局存储库中不需要的东西,因为它们在那里没有意义。只有编译和运行项目所需的东西才应该在你的存储库中(可能还有一些项目管理的东西,比如全局待办事项列表、说明、自述文件等)。

    当然应该包含全局、稳定的配置文件(如 makefile、maven pom 等),因为它们是构建项目所必需的。

    让你的第一次提交包括这个 gitignore 而不是你不想要的文件。

    一旦主机特定文件等在存储库中,它们就在存储库中,除非从存储库中删除,否则它们会制造麻烦(即在结帐时覆盖新配置和类似的东西)。因此,最简单、最安全的处理方法就是根本不包含它们。

    【讨论】:

    • 这是有道理的。谢谢你。我唯一不明白的是,如果 Git 中缺少配置文件,同事如何在结帐后获取配置文件?我必须以其他方式提供给他吗?此配置文件与实例不同,但对于运行项目是必需的,只是每次配置不同。这种情况该怎么办?
    • 您可以包含一个模板配置,例如 project.conf.template,忽略 project.conf,这样它就不会被提交,然后每个人都可以基于该模板构建自己的 project.conf。它基本上取决于配置的类型。对于 IDE,我发现最简单的方法是在 IDE 中创建一个新项目,生成必要的配置,然后导入源代码。
    猜你喜欢
    • 2016-09-02
    • 2023-04-08
    • 2014-11-20
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 2013-03-18
    相关资源
    最近更新 更多