Как в большом проекте сделать checkout нужных папок и файлов, чтобы не создавать конфликт. Как выбрать нужные папки и файлы перед pull?
Я работаю над большими проектами, где работает большое количество разработчиков. Перед пушем файлов, когда решил все свои задачи, я все время сомневаюсь, какие именно папки и файлы надо откатить чекаутом, чтобы перед pull не произошло конфликта. Например, скомпилированный dist. Подскажите, как быть?
Скомпилированного dist не должно быть в репозитории. Это единственно правильный способ организации репозитория (генерируемым и компилированным файлам там не место — это всегда приводит к адским граблям и кошмарному неудобству разработчиков). И никаких конфликтов не будет.
Это очень важный ответ для меня. Но в папке public, обычно лежит скомпилированный тот же, sass, less, pug. Его получается тоже надо добавлять в чекаут?
Flasher, непонятно про папку public и что конкретно вы понимаете под чекаутом. Вообще, правильный вариант всегда такой:
В репозитории только исходный код
На машинах разработчиков или на сервере устанавливаются необходимые зависимости, компиляторы, препроцессоры вручную или при помощи скриптов (fabric, ansible, просто shell скрипт)
при обновлении через git pull, процесс установки или обновления зависимостей, а также компиляция, запускаются автоматически или вручную
зависимости и скомпилированные файлы в репозитории никогда не лежат
Евгений, Смотрите, есть обычно папка resources. Там обычно лежат всякие штуки, которые собираются тем же Gulp (препроцессоры, постпроцессоры и тп). После запуска Gulp, все это комплилируется в dist или в public. Я понял, что, когда я должен запушить свою работу, я должен сделать чекаут этой папки и всего того, что скомпилировано. Все верно, да?
Flasher, что вы понимаете под "чекаутом папки"?
Если у вас dist или public не добавлены в репозиторий, то вообще ничего не надо делать. git add/git commit/git push. Git не волнуют файлы, которые не принадлежат репозиторию.
Flasher, значит его надо оттуда убрать, и добавить в .gitignore. Поверьте, когда такие файлы лежат в репозитории, работа превращается в адский ад. Особенно, когда работают много разработчиков в разных ветках.
Лучше сразу организовать репозиторий правильно. Все остальное - костыли и полумеры.