Git - одна из лучших бесплатных систем контроля версий и управления проектами, используемая программистами в процессе разработки для хранения истории файлов с возможностью отмены внесённых изменений, а так же для совместной или параллельной разработки с последующим объединением результатов.
Попросту говоря, использование в проекте системы контроля версий Git даёт разработчикам возможность делать «снимки» файлов проекта, к которым можно впоследствии вернуться, если в процессе разработки что-то пошло «не так». То есть, если внесённые в код правки приведут к неожиданным последствиям и негативно скажутся на работе всего проекта, программисту не придётся вспоминать, в каких именно файлах и какие изменения вносились и как код выглядел до правок, можно просто вернуть файлы к их более раннему состоянию.
Именно система «снимков» кардинально отличает Git от большинства систем контроля версий, таких как Subversion, Bazaar и подобных им. Другие системы контроля версий оперируют файлами и наборами изменений (патчами) которые сохраняются для хранимых файлов с течением времени. Git хранит «снимки» проекта в определённый период времени, если какой-либо файл изменён, записывается его новая версия, если нет - файл не дублируется, а просто делается ссылка на уже имеющийся.
Хранение на компьютере локальной копии репозитория позволяет Git практически мгновенно показывать историю проекта и откатывать сделанные изменения. При необходимости сравнения свежего файла ранее с сохранённым, Git локально сравнивает файлы и показывает разницу, без какой-либо сетевой задержки. Вы можете полноценно работать с проектом без подключения к сети и создавать новые слепки, которые будут синхронизированы с сервером при подключении к Интернету.
Ещё одна важная чать Git это ветвления и форки. Ветвления, как следует из названия, дают возможность делать ответвления от основного проекта, в которых можно вести работу над новыми функциями. По завершению разработки можно сделать объединение ветвей, при этом Git проанализирует все внесённые изменения и предложит варианты решения возможных конфликтов. Форк (fork) в свою очередь позволяет использовать код имеющегося проекта для старта нового, на его основе. При этом следует как можно чаще обновлять исходную кодовую базу, чтобы поддерживать версию форка в актуальном состоянии.
Многих начинающих программистов отпугивало управление Git, которое осуществлялось с помощью терминала, однако современные релизы включают в себя простой графический интерфейс, а на официальном сайте предполагается более двух десятков различных графических оболочек от сторонних разработчиков, которые упрощают использование этой системы контроля версий.