Обновление (08 марта 2016 г.)
Сегодня я не могу найти машину, на которой **
не работает так, как заявлено. Сюда входят OSX-10.11.3 (El Capitan) и Ubuntu-14.04.1 (Trusty). Возможно, git-ignore как обновленный, или, возможно, недавний fnmatch обрабатывает **
, как ожидают люди. Таким образом, принятый ответ теперь кажется правильным на практике.
Исходный пост
**
не имеет особого значения в git. Это функция bash >= 4.0, через
shopt -s globstar
Но git не использует bash. Чтобы увидеть, что на самом деле делает git, вы можете поэкспериментировать с git add -nv
и файлами в нескольких уровнях подкаталогов.
Что касается ОП, я перепробовал все возможные комбинации для файла .gitignore
, и ничего не работает лучше, чем это:
public/documents/
Следующее не делает то, что все, кажется, думают:
public/documents/**/*.obj
Я не могу заставить это работать, что бы я ни пытался, но, по крайней мере, это согласуется с git< /em> документы. Я подозреваю, что когда люди добавляют это в .gitignore
, это работает случайно, только потому, что их файлы .obj
имеют глубину ровно в один подкаталог. Вероятно, они скопировали двойную звездочку из bash-скрипта. Но, возможно, есть системы, в которых fnmatch(3)
может обрабатывать двойную звездочку так же, как bash.
person
cdunn2001
schedule
31.12.2010
fnmatch
в MacOS отличается от Linux. Надеюсь, кто-то еще это проверит. - person cdunn2001   schedule 30.07.2011Double asterisk does not have a special meaning and is interpreted just like a single asterisk
. - person antak   schedule 13.08.2012**
' работает лучше, не в зависимости от оболочки. См. мой ответ ниже. - person VonC   schedule 17.07.2013**
не работает, как заявлено. Сюда входят OSX-10.11.3 (El Capitan) и Ubuntu-14.04.1 (Trusty). Возможно, git-ignore как обновленный, или, возможно, недавний fnmatch обрабатывает**
, как ожидают люди. Таким образом, принятый ответ теперь может быть правильным на практике. - person cdunn2001   schedule 08.03.2016