Я использую Git с Capistrano.
Я инициализировал свой проект в своей папке на локальном компьютере следующим образом:
git init
я потом толкнул проект в директорию сервера
Я тогда позвонил cap deploy
Развертывание работает, за исключением того, что оно загружает локальную структуру папок .git, а также мои .gitignore и Capfile в общедоступную папку.
Вот мой файл gitignore:
.DS_Store
uploads/**/*
Capfile
.gitignore
.git/**/*
Кажется, это не помогает. Любая помощь?
Спасибо!
Редактировать: обновленный файл .gitignore:
Изменена стратегия развертывания для экспорта:
set :deploy_via, :export
Это работает для игнорирования папки .git, но содержимое моего файла .gitignore, показанного ниже, все еще не учитывается
.DS_Store
includes/php/config.php
/uploads
Capfile
.git
РЕДАКТИРОВАТЬ 2 (Решение): Редактировать 1 в сочетании со следующим сделал трюк.
Файлы, которые уже были добавлены до их перечисления в файле .gitignore, будут постоянно загружаться. Скажем, у меня был следующий файл .gitignore.
.DS_Store
includes/php/config.php
Затем я выполнил следующие команды:
git add .
git commit -a -m 'some commit'
Тогда я решил добавить в свой файл .gitignore, чтобы он теперь выглядел так:
.DS_Store
includes/php/config.php
Capfile
Потом опять я побежал:
git add .
git commit -a -m 'another commit'
Теперь я вижу, что .DS_Store
и includes/php/config.php
не были загружены, но что Capfile имеет ... Это то, что случилось со мной в моем первоначальном вопросе.
Причина: я думаю, что файл .gitignore учитывается только при добавлении (т.е. git add .
). Если бы я уже добавил файлы, а затем поместил их в файл .gitignore, они бы уже были добавлены в проект. Мне нужно использовать команду git rm
, чтобы удалить их.
Я только начал заново с новым репозиторием .git, и это решило проблему, но вам не нужно - вы можете просто удалить все файлы, которые вы уже добавили, но теперь хотите игнорировать с помощью команды git rm
.
Я выбрал правильный ответ, который помог мне прийти к такому выводу, хотя полное решение было подробно описано выше.