Заставьте мерзавца проигнорировать файлы

Я пытаюсь заставить мерзавца проигнорировать некоторые мои файлы, и я нашел одно описание о том, как Вы могли сделать это

От: http://github.com/guides/git-cheat-sheet ДЛЯ ИГНОРИРОВАНИЯ НЕКОТОРЫХ ФАЙЛОВ

Добавьте файл в корневом каталоге, названном .gitignore, и добавьте некоторые файлы к нему: (комментарии начинаются с хеша), *.log db/schema.rb db/schema.sql

Мерзавец автоматически игнорирует пустые каталоги. Если Вы хотите иметь журнал / каталог, но хотеть проигнорировать все файлы в нем, добавьте следующие строки к корню .gitignore: (начало строк‘!’ исключения),

зарегистрируйтесь /*! .gitignore

Затем добавьте пустой .gitignore в пустом каталоге:

касание log/.gitignore

Таким образом, я сделал файл названным .gitignore в моей папке для моего проекта и записал следующее в нем:

phpMyAdmin/*
nbproject/*
inc/mysql_config.php
!.gitignore

Но когда я фиксирую, файлы isent исключенный из фиксации...

20
задан Nakilon 15 May 2013 в 16:30
поделиться

1 ответ

Согласно man gitignore :

ОПИСАНИЕ

Файл gitignore определяет преднамеренно неотслеживаемые файлы, которые git должен игнорировать. Примечание что все файлы gitignore действительно относятся только к файлам, которые еще не отслеживается git; чтобы игнорировать незафиксированные изменения в уже отслеженных файлах, обратитесь к документации git update-index --assume-unchanged .

Так что это не поможет, если вы их уже добавили. Это в первую очередь для предотвращения добавления. Таким образом, вы можете игнорировать файлы .tmp и добавить целый каталог, не беспокоясь о том, что вы добавите файлы .tmp .

Я считаю, что вы можете удалить их из индекса с помощью:

git rm --cached file_to_stop_tracking_but_dont_want_to_delete.txt

Обновление:

Кроме того, .gitignore должен находиться в базовом каталоге или, по крайней мере, выше того, где находятся эти каталоги.Также удалите «*» из каталогов:

phpMyAdmin/
nbproject/
inc/mysql_config.php
!.gitignore

И будьте осторожны с phpMyAdmin / vs / phpMyAdmin vs phpMyAdmin . Также из man gitignore :

  • Если шаблон заканчивается косой чертой, он удаляется с целью следующее описание, но будет найдено совпадение только с каталогом. Другими словами, foo / будет соответствовать каталогу foo и путям под ним это, но не будет соответствовать обычному файлу или символической ссылке foo (это в соответствии с тем, как pathspec в целом работает в git).

  • Если шаблон не содержит косой черты / , git рассматривает его как оболочку glob и проверяет совпадение с именем пути без ведущих каталогов.

  • В противном случае git рассматривает шаблон как оболочку, пригодную для использования. by fnmatch (3) с флагом FNM_PATHNAME : подстановочные знаки в шаблоне не будет соответствовать / в имени пути. Например, Documentation / *. Html соответствует Documentation / git.html , но не Documentation / ppc / ppc.html . А ведущая косая черта соответствует началу имени пути; например, / *. c соответствует cat-file.c , но не mozilla-sha1 / sha1.c .

29
ответ дан 29 November 2019 в 22:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: