Капистрано загружает каталог.git


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

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

Author: Yuval Karmi, 2010-08-14

2 answers

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

Есть ли у вас настройка 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

 16
Author: zzawaideh, 2010-08-14 15:59:58

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

uploads/

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

На самом деле ваша проблема не имеет особого отношения к Cap. Убедитесь, что ваш файл .gitignore работает правильно.

 1
Author: The Pixel Developer, 2017-05-23 11:43:51