Capistrano загружает каталог .git - PullRequest
6 голосов
/ 14 августа 2010

Я использую 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.

Я выбрал правильный ответ, который помог мне прийти к такому выводу, хотя полное решение было подробно описано выше.

Ответы [ 2 ]

16 голосов
/ 14 августа 2010

Какова ваша стратегия развертывания?

У вас есть настройки Capistrano для исключения файла .git? если вы используете set :deploy_via, :copy, добавьте следующее:

set :copy_exclude, [".git/*", ".svn/*", ".DS_Store"]

В противном случае используйте set :deploy_via, :export, который должен игнорировать ваши папки управления исходным кодом

http://www.capify.org/index.php/Understanding_Deployment_Strategies

1 голос
/ 15 августа 2010

Глядя на похожий вопрос , кажется, что вам не нужны селекторы с подстановочными знаками, и вы можете просто иметь:

uploads/

Вам нужно развернуть через :git в Capistrano и сделать экспорт. По сути это git clone, а затем просто удаляет каталог .git.

Твоя проблема не имеет ничего общего с Кэпом. Убедитесь, что ваш .gitignore файл работает правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...