Не могу понять, как gitignore игнорирует папки - PullRequest
12 голосов
/ 21 апреля 2011

Я хочу создать репозиторий для моего проекта Magento.В корневом каталоге много папок и файлов, и я время от времени меняю только одну папку: app / code / local /

Все остальное, что я хочу игнорировать.Но .. не могу.Мой файл .gitignore:

*
!app/code/local/
!app/code/local/*

Затем, когда я пытаюсь добавить папку в репо, я получаю сообщение об ошибке:

git add app/code/local/Mds/

The following paths are ignored by one of your .gitignore files:
app
Use -f if you really want to add them.
fatal: no files added

Может кто-нибудь помочь с этим?

Ответы [ 3 ]

17 голосов
/ 21 апреля 2011

Попробуйте ниже игнорировать, как вам нужно:

/*
!/app/
/app/*
!/app/code/
/app/code/*
!/app/code/local/

Следующее обсуждение было полезно: http://git.661346.n2.nabble.com/negated-list-in-gitignore-no-fun-td1675067.html, особенно следующее от Линуса:

That's by design. You've chosen to ignore those directories; they match "*" themselves. Thus, 'git add .' doesn't descend into them looking for files.

Таким образом, в основном, для каждого уровня вы должны войти, игнорировать эту папку и игнорировать содержимое в этой папке.

0 голосов
/ 07 августа 2014

Согласно документации :

"Невозможно повторно включить файл, если исключен родительский каталог этого файла."

Например, если вы уже работали с репозиторием и сказали Git игнорировать родительский каталог, сделали некоторые коммиты, а затем вернулись и попытались разрешить какой-то подкаталог исключенного каталога, он не будет включатьэтот подкаталог , даже если ваш .gitignore файл правильный .Чтобы обойти это, вам нужно принудительно добавить его (с флагом -f):

git add -f {file}

Как только это будет сделано, последующие изменения будут отслежены.

0 голосов
/ 21 апреля 2011

Это .gitignore в корне репо?

Попробуйте это:

/*
!/app/code/local
...