мы недавно переключились с SVN на Git и в то же время перевели наши действующие системы в систему управления версиями (вместо локальной проверки и копирования файлов в живую).
В проекте мне поручено, чтобы мы все имели доступ к одному и тому же репозиторию, и чтобы внести изменения в жизнь, мы просто git pull
там. Это вызывает проблемы, потому что наши веб-дизайнеры вносят изменения в VCS, которые еще не должны быть активными, но должны быть в среде веб-тестирования.
Когда один из разработчиков начинает работать, он получает все (возможно, незавершенные) изменения.
Я думал о переходе вживую на дополнительную ветку и просто объединяю то, что изменилось, но из-за недостатка знаний о git я понятия не имею как.
Моя идея такова:
- Создайте новую ветку в live (
git branch live
). - Каждый раз, когда что-то должно жить
- Напряжения изменение мастеров (например:
git checkout master; git pull; git checkout live
) git merge master
- Напряжения изменение мастеров (например:
Проблема в том, что переключение на мастер или перетаскивание всего непосредственно в работающую систему может вызвать проблемы, поэтому я бы предпочел этого избежать.
Есть ли способ сделать это или есть лучший способ управлять системой Live (кроме обучения веб-игроков, чтобы они не толкали незаконченные вещи).
git checkout -f
для игнорирования проблемы - но сделайте резервную копию!
git pull --all
по умолчанию не будет извлекать мастер в прямом эфире, он извлечет мастер и объединит его с мастером, и (если он существует на сервере) потянет в прямом эфире, чтобы объединить в оперативный. Вы пробовали это?