2016-05-14 2 views
0

Найдите ниже двух цитат из this link:Закономерности в файле .gitignore и других

1) В DESCRIPTION:

  • Шаблоны для чтения из командной строки для тех команд, которые поддерживают их.

2) В PATTERN FORMAT (курсив мой):

  • Если образец не содержит слэш /, Git рассматривает его как оболочки шаблон Глоб и проверяет наличие сопоставить с именем пути относительно местоположение файла .gitignore (относительно верхнего уровня рабочего дерева , если не из файла .gitignore).

Обе цитаты (вторая жирный шрифт выше), кажется, относится к мерзавцу игнорировать команды (не файл), который упоминается в this answer в SO. Проблема, которую я вижу здесь, заключается в том, что эта команда даже не упоминается в Pro Git book. Таким образом, возможно, что моя интерпретация приведенных выше цитат просто неверна.

У меня есть еще один вопрос о файле .gitignore и это о this comment в SO, что я повторяю ниже:

You can put .gitignore anywhere in a git project - if a path starts with /, it will be relative to the location of the .gitignore file; otherwise it will refer recursively to files in the current directory and its descendant directories.

Я просто не могу понять, как вывести это из link given above.

+0

О вашем втором вопросе - вот выдержка из предоставленной вами ссылки: 'Шаблоны, считанные из файла .gitignore в том же каталоге, что и путь, или в любом родительском каталоге, с шаблонами в файлах более высокого уровня (вплоть до верхнего уровня дерева работ), который переопределяется теми, которые находятся в файлах нижнего уровня, до каталога, содержащего файл. Эти шаблоны соответствуют местоположению файла .gitignore. Обычно проект включает в себя такие файлы .gitignore в своем репозитории, содержащие шаблоны для файлов, сгенерированных как часть сборки проекта. ' – ingenious

+0

Команда git ignore в ответе, на который вы ссылались, не является частью git. В том же ответе есть ссылка на репозиторий, из которого вы можете получить команду. – ingenious

+0

@ingenious В отношении выдержки, приведенной выше, я должен сказать, что я вообще этого не понял, и из-за этого я не вижу связи между этим и комментарием OP, о котором я говорил в моем вопросе. Может быть, вы могли бы дать ответ, более подробно объясняющий, что такое этот экстракт. Благодарю. –

ответ

0

OK, поэтому, похоже, есть некоторые недоразумения. Статья на сайте pro git около gitignore ссылается на файл .gitignore, а не на команду. Команда, упомянутая в другом вопросе, - , а не часть git, но вместо пакета git extras.

После того, как я подумал, что я понимаю, что я начинаю понимать, что здесь путает. Вы только что процитировали (часть) порядок, в котором git оценивает игнорирование шаблонов. На самом верху этого заказа находятся patterns from the command line. Все они являются встроенными и настраиваемыми (как в ответном ответе) командами, которые обрабатывают шаблоны git ignore.

Вторая цитата, вероятно, лучше всего объясняется примерами внизу gitignore manpage. Я говорю:

статус $ мерзавца
[...]
# Неотслеживаемые файлы:
[...]
# Документация/foo.html
# Документация/gitignore. HTML
# file.o
# lib.a
# ЦСИ/internal.o
[...]
$ cat .git/info/exclude
# игнорировать объекты и архивы в любом месте дерева.
*. [Оа]
$ кошки Документация/.gitignore
# игнорирований генерируется HTML-файлы,
* .html
# кроме foo.html, которая поддерживается вручную
! Foo.html
$ мерзавца статус
[...]
# Неотслеживаемые файлы:
[...]
# Документация/foo.html
[...]

Это также вполне допустимо, чтобы поместить файл gitignore в любом месте вашего проекта, пожалуйста, обратитесь к official documentation on gitignore снова:

Git обычно проверяет несколько источников, в следующем порядке старшинства, от самого высокого до самого низкого :
- командная строка
- файл .gitignore в же директории как путь, или в любом родительском каталоге, с узорами в выше файлов уровня (до полный уровень рабочего дерева) переопределяется теми, кто находится на нижнем уровне, вплоть до каталога, содержащего файл. Эти шаблоны соответствуют местоположению файла .gitignore. Обычно проект включает в себя такие файлы .gitignore в своем репозитории, содержащие шаблоны для файлов, сгенерированных как часть сборки проекта.

И часть о слэш описывается в следующем абзаце:

Ведущий слэш соответствует начало пути. Например, «/*.c» соответствует «cat-file.c», но не «mozilla-sha1/sha1.c».

Иными словами, картина, как правило, оценивается как Глоб следуют образцу и будет соответствовать любому пути в любой подкаталог относительно расположения файла .gitignore. Однако, если шаблон начинается с косой черты, это означает, что шаблон точно совпадает с началом относительного пути.

+0

Я убежден, что две цитаты в моем вопросе не имеют никакого отношения к команде ** git ignore **, и я благодарю вас за это. Но я до сих пор не понимаю, как можно получить результат в [связанном комментарии] {http://stackoverflow.com/questions/4308610/how-to-ignore-certain-files-in-git#comment43965500_4308628} в SO , из man-страницы gitignore. –