Git — это распределенное программное обеспечение для контроля версий. Контроль версий — это способ сохранять изменения с течением времени, не перезаписывая предыдущие версии. Распределенность означает, что у каждого разработчика, работающего с репозиторием Git, есть копия всего этого репозитория — каждой фиксации, каждой ветки, каждого файла. Если вы привыкли работать с централизованными системами контроля версий, это большая разница!
Даже если вы раньше работали с контролем версий, есть несколько вещей которые стоит освежить в своей голове.
Ветки довольно легкие и достаточно дешевые, поэтому зачастую их много те
Независимо от того, работали ли вы раньше с контролем версий или нет, есть несколько вещей, которые вы должны знать, прежде чем приступить к работе с Git:
Ветки легкие и дешевые они практически не занимают лишнего места, поэтому их много. Для хранения изменений и их фиксации Git использует Хэш SHA, которые работают за счет сжатия текстовых файлов. Именно это делает Git одной из лучших систем контроля версий (VCS), что и сделало Git стандартом в разработке ПО, но у всего есть минус, Git не очень хорошо подводит для двоичных и медиа файлов, таких как видео и картинки. Вы можете подключать различные репозитории Git, допустим вы можете работать с одним из репозиториев локально, а после подключить его к общему репозиторию. Таким образом вы легко можете сотрудничать с другими разработчиками и отправлять и извлекать изменения в их репозитории, или они в ваши.
Зачем использовать Git?
Контроль версий в современном мире неотъемлемая часть разработки ПО. С помощью Git вы можете делать фиксацию или точку сохранения так часто как — это необходимо. Вы также можете вернуться к предыдущим коммитам или перемотать вперед. Это снимет с вас ответственность и дополнительное напряжение во время работы. Делайте коммиты чаще или больше, и вам будет сложнее потерять свой уже написанный код, и вы всегда сможете найти что именно ранее вы изменили пройдясь по истории изменений.
Среди большего количества систем контроля версий Git имеет большое количество следующий преимуществ:
- Скорость Работы
Как ранее мы уже говорили Git использует сжатие SHA, что позволяет ему работать с текстовыми файлами крайне быстро.
- Объединить конфликты
Git позволит вам решать конфликты слияния, что означает, что несколько разработчиков смогут одновременно вносить изменения в один и тот же файл. Это меняет мир разработки, таким образом, который невозможен при решении конфликтов с централизованной системой управления версиями. Вам необходимо работать с проектом или веткой? Вы можете делать все, что хотите и быть уверенным что ваши изменения в безопасности и ни кто их не перезапишет.
- Дешевые ветки
Говоря про ветки, Git предлагает гибкость и возможности которые ранее не были доступны. Используя ветки, вы вносите изменения в безопасной песочнице. Вместо того, чтобы фиксировать код в котором вы уверены на 100%, вы можете зафиксировать код в котором вы не уверены и хотите помощи или код который необходимо протестировать. После фиксации изменений вы сможете получить изменения на удаленный компьютер, для быстрой обратной связи от встроенных тестов или экспертную оценку.
Без использования ветвления это не было бы возможно.
- Легкость отката назад
Ошибаться — это нормально! Коммиты неизменяемы, то есть их нельзя изменить.(Примечание: вы можете изменить историю, но вместо редактирования существующих коммитов будут созданы новые коммиты замены.)
Это означает, что если вы совершили ошибку, даже в такой важной ветки, как main/master, то все в порядке. Вы можете легко вернуться к предыдущему коммиты или откатить указатель ветки на фиксацию, где все было в порядке.
Невозможно переоценить преимущество такого подхода. Это не только делает безопаснее среду разработки проекта и кода, но и способствует созданию среды разработки, в которой разработчики могут и главное будут смелее, ведь их поддерживает Git!
Начало работы с Git
В зависимости от вашей ОС у вас уже может быть установлен Git, как в случае с большинством дистрибутивов Linux. Но начало работы — это не только установленное ПО на ваш компьютер. Для начала важно знать основы работы Git. Вы можете выполнять какие то конкретные команды в консоле или приложении с графическим интерфейсом.
Есть много способов использовать Git, но это не обязательно сделает его проще! Но основной рабочий процесс состоит из нескольких базовых шагов:
- Создать ветку
Основная ветка обычно называется main или master. Мы хотим работать над другой веткой, для внесения безопасных изменений. Для начала создайте ветку от main. Назовите ее каким — то осмысленным именем, который будет отображать либо номер задачи, либо контекст ее смысла как например: test, dev, uat. Зачастую для названия ветки использует название функции, которые будут в центре внимания ветки. У одного человек может быть множество веток и в каждой из них может работать множество людей. Не смотря на то что у самурая нет цели, а только лишь путь, ветки как раз и создают для достижения самураями совместной цели и выполнения поставленной задачи. Где бы вы не находились в данный момент( куда бы ни указывал HEAD, или какую бы ветку вы в настоящее время ни «выписали» ), она будет родительской для вновь созданной ветки, которая будет создана вами. Вы можете создавать ветки из других веток, тегов или даже коммитов! Но наиболее часто применяется создание веток из текущей версии main — которая представляет собой самый последний стабильный код.
- Внесите изменения и сделайте коммит
После создания ветки и переноса указателя Head на нее, внесите изменения в свой репозиторий, иcпользуя ваш любимый текстовый редактор или даже IDE.
- Сохраните изменения
Далее сохраните изменения. Вы готовы начать фиксацию!
Чтобы произвести фиксацию, вам необходимо сообщить Git, какие именно изменения вы хотите добавить используя git add [file].
Нельзя сохранить кусочек файла, файл будет сохранен полностью, а изменения будут подсвечены плюсами которые добавлены и минусами которые были удалены.
После того как вы сохранили изменения и определились с фалами, вы готовы к фиксации с помощью комманды git commit -m «сообщение которое кратко расскажет для чего данные изменения».
- Отправьте свои изменения в репозиторий.
Ранее проделанные шаги сохранили коммит локально, и в настоящее время вы единственный кто может их как — то увидеть, чтобы остальные могли увидеть ваши изменения и начать совместную работы, вы должны отправить(протолкнуть) изменения с помощью команды git push.
Если вы ранее не отправляли изменения из ветки, созданной локально, вам будет необходимо отправить текущую ветку и создать удаленную ветку, которая имеет соответствующее имя локальной ветке, после чего локальная и удаленная ветка будут связаны. Сделать это можно командой git push -u origin [branch-name], которую Git предложит автоматически.
По умолчанию git push отправить только ту ветку, в которой вы работаете в настоящее время.
Если ранее в удаленной ветке была проведена новая фиксация, вы можете быть заблокированы для отправки изменений. Не волнуйтесь начните с простого git pull, после чего будут включены изменения на удаленном компьютере в вашу собственную ветку, а вам останется разрешить любые конфликты или завершить слияние с удаленного в локальный файл, а затем повторить попытку отправки кода.
- Откройте запрос на вытягивание
Отправки ветки или новых коммитов в удаленный репозиторий уже достаточно, если запрос на вытягивание уже существует, но если ранее вы не отправляли ветки, вам следует открыть новый запрос, запрос на вытягивание — позволяет сравнить две ветки main или ветки из которой создана текущая ветка. Таким образом запросы на вытягивание имеют строго ограниченную функциональность. Запрос на вытягивание позволит принимать или отклонять вашу работу, более компетентным лицом, который несет ответственность за работу проекта. Вы можете запускать тестирования по запросам на вытягивание и если они отклонены предоставлять немедленную обратную связь о том, что не так в вашем коде. Коллеги могут дать вам полный обзор кода, сообщить вам стоит ли что — то поправить или внести какие — то еще изменения.
Убедитесь что ваш запрос на вытягивание задержит правильную информацию, позаботьтесь о своих товарищах заранее. Включите информацию о чем изменения, что побудило его и что уже сделано, а может что — то осталось сделать или оставьте пометки о помощи. Вы можете добавить обсуждения или краткий обзор кода. Шаблоны запросов на вытягивания могут позволить съэкономить время потраченной на внесение информации.
Как только Pull Request открыт начинается настоящее веселье. Важно понимать, что запросы на вытягивание не должны открываться после окончания рабочего дня, ведь это может привести к критическим проблемам и сломать работу проекта, в то время когда ни кто, не сможет вам помочь и внести исправления. Запросы на вытягивания лучше создавать когда работа начинает и когда вы будете готовы принимать обратную связь, чтобы быстро отреагировать на критические проблемы.
Вы можете и дальше вносить изменения в свою ветвь и Pull request покажет последние изменения в ветви.
- Объединить в основную ветку.
Как только вы или ваша команду решите, что ваш Pull Request выглядит хорошо и не содержит критический ошибок вы можете объединить его вместе с основной веткой. Путем слияние вы производите интеграцию ваших функций с основной веткой, а ваш запрос на слияние будет закрыт. Не забудьте удалить свою ветку. Вам она больше не понадобится. Помните ветки легкие и дешевы, и вы должны создавать новую когда вам это нужно, на основе самой последней фиксации в main ветке.
Если вы решите не объединять запрос на вытягивание, вы также можете закрыть запросы на вытягивание с неслитыми изменениями.
Понравился данный материал?
Здесь указаны основные команды Git!
Тут мы говорим о том, что такое GitHub.
Хочешь что — то добавить или считаешь какую — то часть материала не совсем корректной? Оставляй комменатрий друг!