Уже в который раз пытаюсь решить для себя эту задачу, но никак не получается. Ситуация примерно такая:
- разрабатываю сайт дома, допустим работаю над фронтэндом, а это, если вкратце, то js, scss, которые потом конвертируются и минифицируются, мапятся. Все это дело отправляю в репозиторий.
- далее приезжаю в офис, загружаю из репозитория то, что сделал дома. Ок, продолжаю работать, у меня есть все исходники, все удобно.
И вот задачу решил, надо выгрузить на production. Но на продакшене не нужны scss, там нужны готовые и сжатые css.
Пытался добавить игнорирование этих файлов в `.git/info/exclude` - не помогло, пытался в `~/.gitexcludes` (ессесно с настройкой в .gitconfig) - не помогло. Даже пробовал с полностью пустым проектом тоже самое провернуть (ну мало ли проиндексированные файлы и т.п.), но даже с пустым проектом из репозитория подтягиваются ненужные файлы.
В Интернете искал, но там решения для файлов, которые случайно утекли в репозиторий и надо срочно избавиться или как у себя заигнорить и не отправлять в репозиторий или тем же `git update-index --assume-unchanged`, которого на один раз хватает, да и с ума сойдешь все файлы по-одиночке так парсить.
Прихожу к выводу, что решения таки и нет. Но может, ошибаюсь и кто-то подскажет?
невозможно игнорировать то, что уже под контролем.
можно локально убрать файл из контроля, добавить его в игнор, и у всех, кто после этого склонирует он будет в игноре.
Настрой пути сохранения сгенерированных css файлов на вне git репозитария, например второй, создав его специально для production ready файлов. Т.е. именно он и должен использоваться для переноса итоговых файлов в продакшн. либо заведи специальный подкаталог внутри git, добавив его в .gitignore, а саму инсталляцию в продакшн проводи другими способами.
Спасибо. Первый вариант еще (с большой натяжкой) как-то можно было бы использоваться, но второй точно нет, это не применимо к php-фреймворку и его структуре. Как-то пробовал наоборот: делать исходники в /sass/*.scss, а результат класть в /*.css - и как бы файлы рядом, но тоже геморрой еще тот.
Но и с первым вариантом не все так просто с этим двойным репозиторием. Пока, самое простое, это скриптом на сервере продакшена, загружать изменния с github, а далее просто удалять по маске все sass, js и т.п. файлы. Но тут тоже проблемы, потому как контент-менеджеры могут делать изменения на сайте и надо выгружать эти изменения в среду разработки и тут-то удаленные файлы тоже хотят удалиться...
Изучаю пока вопрос и вроде есть нечто похоже, что мне нужно, но у gitlab и atlassian.
Firsov36, воспринимать нужно исходные тексты проекта как то что не является итоговым кодом, так как над ними перед публикацией необходимо произвести какие то действия, даже если не надо всеми файлами.
Поэтому необходим процесс публикации (deployment) оформить как то, копирующим только необходимые
файлы в отдельный каталог.
Не нравится генерация .css файлов в другой каталог, напиши bat-ник, копирующий все необходимое
p.s. попадание исходных дев-файлов в продакшен это мина замедленного действия, это как написать пароль на бумажке, приклеить его ко лбу и ходить, постоянно прекрывая руками лоб, чтобы никто пароль не заметил.
rPman, да ну, бросьте.. для фронтенда js, css и так видны и никуда их не спрячешь. Единственное, что может "утечь" это технологии, код, подход к написанию мощных sass и различных js с помощью фреймворков. Вот с бэкэндом я совсем иначе поступаю, там реально есть что терять.