# Работа с git
`Предложенная методология основана на общепринятых нормах разработки и возможно они вам уже известны.`
Если есть production и dev сервер, то помимо master создается глобальная ветка dev, которая будет базироваться на dev сервере, и все изменения перед выпуском новых фич/правок будут тестироваться на dev сервере, но допустимы хотфиксы которые могут обходить весь этот цикл, если есть необходимость.
Поэтапно как работать:
- Пришла задача "Rebase user profile page"
- Мы понимаем что задача объемная и для ее решения лучше использовать отдельную ветку
- Создаем от master ветки новую `feature/{task_name}`, допустим `feature/rebase-upp`
- Когда вы заканчиваете работу над задачей, то мержите ветку задачи в dev ветку самостоятельно.
- После этого, совместными усилиями задача тестируется на тестовом сервере вместе с остальными задачами.
- Если есть ошибки, то задачу дорабатывают в той же ветке и повторно мержат с dev веткой.
- Когда тестирование задачи заканчивается, то ВЕТКУ ЗАДАЧИ мержат с мастер веткой.
>Важно заметить, что в этой схеме работы с мастер веткой нужно мержить ветку задачи, а не dev ветку. Ведь в dev ветке будут содержаться изменения, сделанные не только в этой задаче, но и в других и не все эти изменения могут оказаться рабочими. Мастер ветка и dev ветка со временем будут расходиться, поэтому при такой схеме работы периодически нужно заводить новую dev ветку от последнего рабочего состояния мастер ветки.