2011-04-21 2 views
12

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

Все остальное, что я хочу игнорировать. Но .. не может. Мой .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 

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

ответ

17

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

/* 
!/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.

Итак, в принципе, для каждого уровня y вам нужно войти, не игнорировать эту папку и игнорировать содержимое внутри этой папки.

+0

я не работать тоже .. – user718085

+0

Я отредактировал мой ответ. Я проверил его. – manojlds

+0

Я не могу поверить, что я не работаю. Я даже создать новая папка под приложением/код/​​локальная, но ошибка такая же ... – user718085

0

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

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

/* 
!/app/code/local 
+0

К сожалению это не помогло = (The .gitignore находится в корневой папке. – user718085

0

По the documentation:

"It is not possible to re-include a file if a parent directory of that file is excluded."

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

git add -f {file} 

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

Смежные вопросы