首页 文章

.gitignore和.gitkeep有什么区别?

提问于
浏览
1524

.gitignore.gitkeep 之间有什么区别?它们是不同名称的同一个东西,还是它们都服务于不同的功能?我似乎无法在 .gitkeep 上找到太多文档 .

3 回答

  • 2763

    .gitkeep 没有记录,因为它不是Git的功能 .

    Git cannot add a completely empty directory . 想要在Git中跟踪空目录的人已经创建了将这些名为 .gitkeep 的文件放在这些目录中的约定 . 该文件可以被称为任何东西; Git对此名称没有特别的意义 .

    有一个相互竞争的惯例是将 .gitignore 文件添加到空目录以跟踪它们,但有些人认为这令人困惑,因为目标是保留空目录,而不是忽略它们; .gitignore 还用于列出Git在查找未跟踪文件时应忽略的文件 .

  • 104

    .gitkeep 只是一个占位符 . 一个虚拟文件,所以git不会忘记该目录,因为git只跟踪文件 .


    如果你想要一个空目录并确保它对于git保持'clean',请创建一个包含以下行的 .gitignore

    # .gitignore sample 
    ###################
    
    # ignore all files in this dir...
    *
    
    # ... except for this one.
    !.gitignore
    

    如果您希望git只能看到一种类型的文件,下面是一个如何过滤所有内容的示例,除了.gitignore和所有 .txt 文件:

    # .gitignore to keep just .txt files
    ###################################
    
    # filter everything...
    *
    
    # ... except the .gitignore...
    !.gitignore
    
    # ... and all text files.
    !*.txt
    

    ('#'表示评论 . )

  • 246
    .gitignore
    

    是一个文本文件,包含目录中的文件列表,git将忽略或不在存储库中添加/更新 .

    .gitkeep
    

    由于git删除或不添加空目录到repo .gitkeep是一种hack(我不认为它被正式命名为git的一部分)来保留repo中的空目录 .

    只需要 touch /path/to/emptydirectory/.gitkeep 添加文件,git现在就可以在存储库中维护这个目录了 .

相关问题