Git – распределенная система управления версиями

Где, как и для чего применяется Git, основные моменты о работе с Git и Git-клиентами.
17 августа 2015182424Наталья Игнатова7747318


На GeekBrains стартовал бесплатный обучающий видео-курс «Git. Быстрый старт», в котором изучается одна из самых популярных современных систем управления версиями. Курс предназначен для продвинутых пользователей, и те, кто уже касался систем управления версиями в своей работе, смогут найти в нем много нужного.  

Если вы являетесь программистом, давно работающим с Git или с другой системой управлениями версиями, то смело можете пропустить данную статью. Если же вы только начинаете и в работе появились неясности, или, наоборот, возникает подозрительное ощущение, что все понятно - данная информация будет вам весьма полезной. Мы рассмотрим основные моменты о работе с Git и Git-клиентами: что такое Git, где и для чего она используется, кому полезна, как с ней работать и каким образом исправлять возникающие конфликты при работе с ветками кода, а также как грамотно организовать взаимодействие данной системы и команды разработчиков.



Без Git-а или его аналога не обходится ни одна командная разработка. Система полезна не только команде, но и отдельным разработчикам.

Git – распределенная система управления версиями, была создана  Линусом Торвальдсом, чтобы управлять разработкой ядра Линукс. На сегодняшний день многие проекты используют Git. Среди них PHP, jQuery, Wine, Android, Qt, Drupal и другие.

Система выпущена под лицензией GNU GPL и является, по сути, набором программ, очень удобных для разработки. Поддерживает нелинейную историю разработки проекта, фиксируя образ системы проекта на данный момент, т.е. то, как выглядят все файлы разработки в конкретный момент времени. Если какой-то файл не изменился с течением времени, он не дублируется, на него просто делается ссылка. Это позволяет повысить эффективность системы.

Устанавливать Git можно и на Linux,  и на Mac, и на Windows. Главная задача  - это правильная настройка системы. Git достаточно гибкая, что даёт возможность реализации практически любых клиентов с интерфейсом по желанию.

Перед началом командной разработки создается репозиторий с доступом к нему по сети. Когда разработчик посчитал, что нужный код готов и написан, он выгружает его в репозиторий. Код становится доступным остальным участникам команды, которые, обратившись к репозиторию, получают актуальную версию. Таким образом, Git хранит историю проекта: авторство и историю изменения вашей разработки с возможностью отката к предыдущей версии. Присутствует возможность контроля доступа к коду. Большим удобством является возможность работы с несколькими версиями разработки одновременно.

Большинство операций Git производится в локальном репозитории. История проекта также хранится на локальном ПК и делает доступ к ней максимально быстрым. Постоянное соединение с сервером системе не требуется, поэтому вы можете работать независимо от наличия постоянного канала связи. Это актуально в случаях плохого интернет-коннекта. Весьма полезной функцией Git-a является отслеживание целостности файлов. Система постоянно следит за контрольными сумами, что даёт большую надежность и актуальность текущего проекта.

Несомненное удобство системы контроля версий – это ветвление: возможность параллельной разработки нескольких версий ПО.   На простом примере это можно сравнить с большим паззлом, например, на 3 тысячи кусков, который собирают 10 человек. Каждый участник сборки складывает свой кусок картинки и, когда он её сложит, этот кусок (ветку) ему необходимо прикрепить к общей картинке. Теперь представьте, что этот паззл с картинкой автомобиля. Пока вы собирали свой кусок, у автомобиля поменялся дизайн фары – так вот та ветка, которая отвечала за фару, имеет возможность быть выключенной и быть собранной по-другому и вставиться целиком. Смысл Git заключается как раз в этом: есть центральная линия, на которой всё понятно и всё работает. В нашем случае это рабочая оттестированная версия программы, которую в любой момент можно показать заказчику или отдать пользователям, и есть боковые ветки, где производится доработка или изменения, которую, кроме самих разработчиков и лиц, имеющих доступ к коду, не видит никто.

Если в процессе работы с ветками случается конфликт при слиянии версий, то вы имеете возможность разобраться с его причиной, принять решение о слиянии или не слиянии того, что есть в главной ветке и тем, что наработали вы и дать конечные исправления.

Возникающие ошибки легко отследить и установить, где, когда, кем и почему они были сделаны. С изменениями также весьма удобно работать – в системе присутствует широкая возможность комментирования.

Многие пользователи почему-то испытывают боязнь в создании новых веток. Этого делать не нужно,  как раз наоборот: все изменения следует проводить сначала на отдельной ветке, потом выкладывать их в основную и только после этого уже принимать решение о внедрении в стабильную версию программы.

Существуют не только графические, но и консольные версии git-клиентов. Они в большинстве случаев удобны для использования на серверах. Консольная версия отличается только отсутствием графического интерфейса. Все остальные действия и команды – аналогичны.

В результате, используя Git, вы получаете удобную среду, как для командной работы, так и для одиночной, имея под рукой возможность сохранять несколько версий программы, держать отдельно главную ветвь, оттестированную и работоспособную и видеть всю историю написания проекта, с возможностью откатиться куда вам необходимо или изменить направление разработки с любой существующей точки.

Пройти бесплатный курс "Git. Быстрый старт"

Тем, кто хочет стать программистом, рекомендуем профессию «Веб-разработчик».

Новые комментарии