有效的.gitignore和清洁策略?

时间:2012-08-30 14:25:37

标签: git

我一直遇到一些我想避免的轻微不便。如果我查看我希望git忽略的所有文件的集合,我可以将它们分成两个基本组:

  1. 我需要保留在我的文件系统上以处理项目的文件(IDE项目元数据文件,特定于我的工作站的配置文件等)

  2. 生成的文件,我不需要,并且当我将它们添加到.gitignore时,通常会混乱我的文件系统。 (编译输出,核心转储等)

  3. 理想情况下,我希望git忽略所有这些文件,这样当我查看未经修改的更改时,我可以清楚地看到我更改的内容而没有一堆噪音。如果我将所有这些文件添加到.gitignore,我可以清楚地了解当我执行git status时我已经改变了什么。 (这是我现在所处的状态)

    但是,我还希望能够使用git clean来删除类别2中的所有文件而不删除类别1中的所有文件。如果我只添加类别1中的文件,我可以使用{{ 1}}删除所有未跟踪的东西。不幸的是,这会使git clean -x混乱。

    或者,我可以添加类别2中的所有文件,但我最终必须手动记住不添加/提交我的工作站特定文件。 git status几乎一直混乱,但并不是那么糟糕。

    有没有办法可以让所有这三件事情和谐相处:

    1. 使用git status
    2. 清楚了解我关注的文件
    3. 使用git status
    4. 删除我不关心的所有文件
    5. 在运行git clean
    6. 时,保留我不想分享的所有未跟踪文件

1 个答案:

答案 0 :(得分:3)

查看gitignore手册页的详细信息。它包括有关此案例的详细信息。

选择您想要的案例。


  

放置模式的文件取决于模式的含义   要使用的。应该是版本控制的模式   通过克隆分发到其他存储库(即,所有文件   开发人员希望忽略)应该进入.gitignore文件。

     

特定于特定存储库但具有特定存储库的模式   不需要与其他相关的存储库共享(例如,辅助存储库)   存储在存储库中但特定于一个用户的文件   工作流程)应该进入$GIT_DIR/info/exclude文件。

     

模式   用户希望git在所有情况下都被忽略(例如,备份或   由用户选择的编辑器生成的临时文件通常会去   到用户的core.excludesfile指定的文件中   ~/.gitconfig