2010-02-07 5 views
6

Я использую git в качестве моей основной системы управления версиями и недавно начал использовать git для своих проектов CakePHP. Это мой текущий файл .gitignore:Использование Git с проектом CakePHP

app/tmp 
vendors/ 

Как используется в CakePHP мерзавца репо, но это вызывает немного больше работы для меня при развертывании проекта на сервере, потому что я должен пойти и создать все app/tmp/sub-directories вручную, прежде чем они будут работать правильно. Есть ли способ настроить его, чтобы игнорировать содержимое в этих папках, но все еще иметь их под контролем git, чтобы они отображались, когда я клонировал репо в горячую директорию?

У меня также была проблема с моим индексом git, который был сброшен, пока я работаю над ним, что заставляет меня делать гораздо больше ошибок, чем нужно, любые идеи по этому поводу тоже?

+0

Можете ли вы подробнее рассказать о своей проблеме с помощью индекса git? Какие шаги будут воспроизводить проблему? –

+0

Вы, вероятно, хотите получить ответы от http://stackoverflow.com/questions/115983/how-do-i-add-an-empty-directory-to-a-git-repository относительно того, как добавлять каталоги, но игнорировать их содержимое , –

+0

Я не уверен в действиях, которые вызывают проблемы, но то, что кажется случайным, все файлы в индексе показаны как удаленные, тогда я должен повторно добавить все файлы в индекс. – trobrock

ответ

11

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

  1. Удалить приложение/TMP/с .gitignore
  2. сенсорного приложения/TMP/.keep
  3. мерзавца добавить приложение/TMP/.keep
  4. мерзавца совершить
  5. Добавить приложение/TMP/с. gitignore
+0

Хорошо, да, это то, что я делал, я просто не мог вспомнить, как это сделать. – trobrock

4

Как уже упоминалось, git хранит файлы, а не каталоги. По умолчанию файл .gitignore для тортов игнорирует все содержимое в папке tmp, чтобы файлы tmp не добавлялись в ваш репозиторий.

Вы можете (и должны), однако сделать это после создания проекта:

cd /my/app 
git add -f tmp 

, который будет делать это:

$ git status 
# On branch master 
# 
# Changes to be committed: 
# (use "git rm --cached <file>..." to unstage) 
# 
# new file: tmp/cache/models/empty 
# new file: tmp/cache/persistent/empty 
# new file: tmp/cache/views/empty 
# new file: tmp/logs/empty 
# new file: tmp/sessions/empty 
# new file: tmp/tests/empty 

Таким образом ваша структура папок TMP готова быть совершено, но все остальные файлы в вашем tmp-файле будут (игнорируются).

1

My .gitignore файл.

tmp/* 
[Cc]onfig/core.php 
[Cc]onfig/database.php 

webroot/files/ 
webroot/img/photos/ 

!empty 
.DS_Store 

Если вы заметите, что я есть! Пуст, который спасает меня от создания .keep файлов все, над которыми так СВН назад. Наконец, вы также увидите, что я использую эту конфигурацию для проектов cakePHP 1.x и 2.x, отмеченных [Cc]. У меня есть некоторые настройки папок, в которых хранятся пользовательские файлы, поэтому я всегда игнорирую их. Наконец, .DS_Store игнорирует мои MAC-файлы, созданные для моего проекта.

+0

какой есть! Пустой средний? – dynamic

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