Я всегда где-то зацикливаюсь на этом, даже если возвращаюсь к этому вопросу много раз. Я придумал подробный процесс, как это сделать шаг за шагом:
Сначала просто используйте git add
чтобы добавить фактический контент.
Он покажет соответствующие файлы, добавленные в индекс, в то время как все остальные еще не отслеживаются. Это помогает строить .gitignore
поэтапно.
$ git add wp-content/themes/my-theme/*
$ git status
Changes to be committed:
new file: wp-content/themes/my-theme/index.php
new file: wp-content/themes/my-theme/style.css
Untracked files:
wp-admin/
wp-content/plugins/
wp-content/themes/twentyeleven/
wp-content/themes/twentytwelve/
...
wp-includes/
...
Добавьте временный DUMMY.TXT
файл в свой каталог:
$ git status
Changes to be committed:
new file: wp-content/themes/my-theme/index.php
new file: wp-content/themes/my-theme/style.css
Untracked files:
wp-admin/
wp-content/plugins/
wp-content/themes/twentyeleven/
wp-content/themes/twentytwelve/
...
wp-content/themes/my-theme/DUMMY.TXT <<<
...
wp-includes/
...
Наша цель сейчас - построить такие правила, чтобы DUMMY.TXT
было единственным правилом, которое по-прежнему отображалось как Не отслеживаемое, когда мы закончили.
Начните добавлять правила:
.gitignore
/*
Первый - просто все игнорировать. Все неотслеживаемые файлы должны исчезнуть, должны отображаться только проиндексированные файлы:
$ git status
Changes to be committed:
new file: wp-content/themes/my-theme/index.php
new file: wp-content/themes/my-theme/style.css
Добавьте первый каталог в путь wp-content
/*
!/wp-content
Теперь файлы без отслеживания снова появятся, но будут содержать только их wp-content
содержимое.
$ git status
Changes to be committed:
new file: wp-content/themes/my-theme/index.php
new file: wp-content/themes/my-theme/style.css
Untracked files:
wp-content/plugins/
wp-content/themes/twentyeleven/
wp-content/themes/twentytwelve/
..
Игнорировать все в первом каталоге /wp-content/*
и отменять игнорирование!/wp-content/themes
/*
!/wp-content
/wp-content/*
!/wp-content/themes
Теперь файлы без отслеживания будут сужены до wp-content/themes
$ git status
Changes to be committed:
new file: wp-content/themes/my-theme/index.php
new file: wp-content/themes/my-theme/style.css
Untracked files:
wp-content/themes/twentyeleven/
wp-content/themes/twentytwelve/
..
Повторяйте процесс до тех пор, пока этот фиктивный файл не останется единственным, который все еще отображается как Не отслеживаемый:
/*
!/wp-content
/wp-content/*
!/wp-content/themes
/wp-content/themes/*
!/wp-content/themes/my-theme
$ git status
Changes to be committed:
new file: wp-content/themes/my-theme/index.php
new file: wp-content/themes/my-theme/style.css
Untracked files:
wp-content/themes/my-theme/DUMMY.TXT
**
подстановочный знак работает только в том случае, если в вашем шаблоне нет косой черты, см. Spareknight.wordpress.com/2011/07/19/…