【问题标题】:git ignore for directories with spaces on Mac OS Xgit 忽略 Mac OS X 上带有空格的目录
【发布时间】:2010-09-09 18:55:01
【问题描述】:

我正在尝试向我的.gitignore 文件添加一些模式以忽略 Xcode 生成的 *.mode1v3 和 *.pbxuser 文件。但是,我的应用名称中有一个空格,所以我想忽略的文件位于Foo Bar.xcodeproj/ 目录中。添加这些模式的变体似乎不起作用:

*.mode1v3
Foo Bar.xcodeproj/
Foo Bar.xcodeproj/*.mode1v3
Foo Bar.xcodeproj/username.mode1v3

.gitignore 模式应该是什么?

【问题讨论】:

    标签: iphone xcode git macos gitignore


    【解决方案1】:

    AFAIK 空间没有特殊处理; Pro Git 和 gitignore(5)fnmatch(3) 都没有提到它们。无论如何,第一个模式*.mode1v3 完全足够了;不带斜线的模式应用于所有子目录。如果您想要特定子目录的其他忽略模式,只需在该目录中放置一个专用的.gitignore

    【讨论】:

    • 你是对的。我有一个新手时刻,我希望仅仅因为在 .gitignore 中而忽略提交的文件。由于他们已经登记入住,情况并非如此。这为我清除了它:gitready.com/beginner/2009/03/06/…
    【解决方案2】:

    您是否尝试过使用反斜杠转义文件夹或文件名中的任何空格?

    *.mode1v3
    Foo\ Bar.xcodeproj/
    Foo\ Bar.xcodeproj/*.mode1v3
    Foo\ Bar.xcodeproj/username.mode1v3
    

    另外,这些文件是否已经被 git 跟踪了?来自man gitignore

    A gitignore file specifies intentionally untracked files that git should ignore.
    Note that all the gitignore files really concern only files that are not already
    tracked by git; in order to ignore uncommitted changes in already tracked files,
    please refer to the git update-index --assume-unchanged documentation.
    

    此外,以下是man gitignore 中讨论的一些模式:

    o   If the pattern ends with a slash, it is removed for the purpose of the
        following description, but it would only find a match with a directory. In
        other words, foo/ will match a directory foo and paths underneath it, but will
        not match a regular file or a symbolic link foo (this is consistent with the
        way how pathspec works in general in git).
    
    o   If the pattern does not contain a slash /, git treats it as a shell glob
        pattern and checks for a match against the pathname relative to the location of
        the .gitignore file (relative to the toplevel of the work tree if not from a
        .gitignore file).
    
    o   Otherwise, git treats the pattern as a shell glob suitable for consumption by
        fnmatch(3) with the FNM_PATHNAME flag: wildcards in the pattern will not match
        a / in the pathname. For example, "Documentation/*.html" matches
        "Documentation/git.html" but not "Documentation/ppc/ppc.html" or
        "tools/perf/Documentation/perf.html".
    
    o   A leading slash matches the beginning of the pathname. For example, "/*.c"
        matches "cat-file.c" but not "mozilla-sha1/sha1.c".
    

    【讨论】:

      猜你喜欢
      • 2013-06-28
      • 2010-12-26
      • 1970-01-01
      • 2011-08-12
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多