Для успешного ведения проекта любого уровня крайне желательно наличие одной стабильной ветки (рабочий вариант). Все вносимые изменения ведутся на параллельной ветке и только после окончательной отладки ветки сливаются.
До этого мы работали с основной веткой, которая фигурирует в программе как master:

Добавление произвольной функции (изменение программы) мы будем делать в отдельной ветке. Для этого перейдём в меню Branch -> Add Branch


Даём ветке новое имя. Я выделяю имена примерно так – раздел/направление. Соответственно в ветках design меняю внешний вид. Если нужно править код – можно сделать раздел code, но это именование произвольное совершенно! Можете придумывать свои префиксы и суффиксы. Итак, добавляем новую ветку – Add Branch.

Теперь слева внизу кликаем правой кнопкой мыши на новую ветку и делаем Checkout Branch – таким образом мы как бы переключаемся на новую ветку и в наш локальный репозиторий загружаются файлы для этой ветки. Сейчас у нас копия последнего коммита.

В этой ветке я планирую в качестве примера вынести отрисовку формы в отдельный файл, и его заинклюдить в основной. Создадим файл form.php, в который “вырежем” код формы, а в файле index.php сделаем подключение файла form.php. Всё честно. Разбили один скрипт на два.

Мы видим, что в окне Smartgit появились изменения в index.php и появился новый файл form.php. Закоммитим изменения!
Перейдя в раздел Log мы увидим, что наша основная ветка разработки разделилась и появилась ветка design/redesignForm. Переключимся снова на ветку master (правой кнопкой мыши – и Checkout) и увидим, что никакого файла form.php нет, а его код всё так же находится в index.php. Это как мгновенный бэкап кода. Добавим строчку кода в index.php – “session_start();
” и закоммитим новое изменение ветки master. Мы увидим, как меняется “дерево разработки”

Снова переходим в ветку design/redesignForm и видим, что у нас всё так же два файла index.php и form.php, и никакой строки “session_start();
” в первом нет. Обязательно попробуйте попереключать различные ветки и посмотрите, что становится с файлами в каталоге. Вот что значит переключение веток. Но предположим, что мы достаточно отладили наш дизайн и пришло время “слить” эту ветку в основной проект. Кликаем правой кнопкой мыши на основную ветку и жмём Merge (или пользуемся панелью инструментов). При этом, к текущей выбранной ветке применяются все изменения из той, с которой мы делаем слияние.

После этого выбираем основную ветку и делаем её Merge с дополнительной. В данном случае мы получили новый коммит, в котором у нас объединён весь код. Мы его обязательно тестируем и можем сделать Push на сервер! По скрину видно, что наши “пути” разработки слились в четвёртый коммит (незаPushенный).
Comments: