Git — одна из наиболее широко используемых систем контроля версий и важный инструмент, который должен знать каждый разработчик. Одно из самых больших преимуществ Git — его возможности ветвления. Ветвление Git — это фундаментальный аспект рабочего процесса управления версиями. Сегодня мы обсудим, как создавать, удалять, объединять и перемещать ветки Git. После этого мы рассмотрим следующие шаги, которые вы можете предпринять, чтобы расширить свои знания Git.
Что такое разветвление?
Представьте, что вы работаете над проектом со своей командой и создаете новую функцию, которая требует внесения большого количества изменений в кодовую базу. В процессе вы обнаружите ошибку, которую необходимо исправить. Эта ошибка связана с вашей новой функцией, и вы не хотите влиять на свой код. Эта ситуация могла усложниться. Где вы будете хранить код, над которым работали?
Вот здесь и появляются ветки Git. Ветвление — это основная концепция системы управления версиями, которая позволяет вам разделять вашу работу по разным ветвям, чтобы вы могли свободно работать с исходным кодом, не затрагивая чью-либо работу или фактический код в основной ветви.
С Git вы начинаете с единственной основной ветки, называемой main. Любая другая фиксация, которую вы сделаете после этого, будет сделана в основной ветке, но Git позволяет вам создавать столько веток, сколько вы хотите.
Примечание: вам не всегда нужно создавать ветки из основной ветки. Вы можете создать новую ветку из любой другой ветки.
В ваших отдельных ветвях вы можете экспериментировать и тестировать, не затрагивая напрямую исходный код. Ветвление позволяет вам и вашей команде переключаться между контекстами, не беспокоясь о влиянии на разные ветки. Это отличный инструмент для команд, потому что он делает совместную работу более простой, удобной и гибкой.
Примечание: ветки Git отличаются от веток SVN. Ветви Git полезны в повседневном рабочем процессе, тогда как ветки SVN используются в крупномасштабных разработках.
Создание веток
Локальный филиал доступен только вам на вашем физическом устройстве. Прежде чем вы сможете отправить ветку в удаленный репозиторий, вам необходимо сначала создать локальную ветку.
Если у вас уже есть локальный филиал, вы можете использовать git checkout:
git checkout <name>
Если у вас еще нет нужной ветки, вы можете создать новую ветку следующим образом:
git checkout -b <name>
Теперь, когда мы знаем, как создать новую локальную ветку, давайте посмотрим, как создать удаленную ветку.
Создание удаленных веток
Вы можете отправить свою локальную ветку в удаленное репо, и она станет удаленной веткой. Когда ветвь удалена, это означает, что любой, у кого есть доступ к удаленному репозиторию, теперь имеет доступ к удаленной ветке.
Если вы хотите переместить локальную ветку в удаленное репо, вы можете использовать git push:
git push -u origin <name>
Удаление веток
Теперь, когда мы знаем, как создать локальную ветку и удаленную ветку, давайте узнаем, как их удалить. Начнем с удаления локальной ветки с помощью -dфлага:
git branch -d <name>
Иногда Git отказывается удалить вашу локальную ветку. Это происходит, когда в вашей ветке есть коммиты, которые не были объединены с другими ветвями или отправлены в удаленные репозитории. Этот отказ призван защитить вас от случайной потери ваших данных.
Если вы уверены, что хотите удалить свою ветку, вы можете использовать -Dфлаг. Этот флаг принудительно удаляет.
git branch -D <name>
Удаление удаленных веток
Чтобы удалить удаленную ветку, вы используете git pushкоманду:
git push origin —delete <name>
Объединение веток
Git merge — важная функция ветвления. Слияние позволяет объединить две или более веток через фиксацию. Изменяется только целевая ветка. В нашем случае это будет основная ветка. История вашей функциональной ветки сохраняется.
Давайте вернемся к функции, над которой вы работали со своей командой. Вся ваша команда имеет доступ к основной ветке, которую вы загрузили в удаленный репозиторий. Вы работаете над небольшим исправлением этой функции и не хотите, чтобы ваша работа влияла на основную ветку.
Вы можете создать свою собственную ветку, чтобы поэкспериментировать и протестировать свои изменения. После завершения и тестирования вы можете объединить эту ветку с основной, чтобы она была доступна всем.
В нашем сценарии предположим, что вы хотите объединить свою экспериментальную ветвь, называемую myfeature, с основной веткой. Перед слиянием вам следует выполнить a, git fetchчтобы собрать актуальную информацию об удаленном репозитории.
git fetch —all
Затем перейдите в ветку, в которую вы хотите объединить изменения, и выполните их git checkout.
git checkout main
Теперь вы можете слиться myfeatureс основной веткой.
git merge myfeature
Вы можете проверить историю коммитов своего проекта в своем репозитории, чтобы проверить слияние. Если ваше слияние прошло успешно и ваша работа myfeatureзавершена, вы можете удалить эту экспериментальную ветвь, поскольку все изменения теперь интегрированы в основную ветвь.
Rebasing веток
Git rebase — это расширенная концепция в Git. Это может показаться немного сложным, но мы рассмотрим основы. Ребазинг и слияние очень похожи. Оба варианта берут коммиты из ветки и помещают их в другую ветку.
Основное различие между перебазированием и слиянием состоит в том, что при перебазировании стирается история вашей функциональной ветки после того, как она переносит работу из функциональной ветки в основную. Некоторые разработчики предпочитают этот метод, поскольку он обеспечивает простой процесс проверки.
Вот как использовать перебазирование:
git checkout myfeaturegit rebase main
Концепции Git, которые нужно изучить дальше
Поздравляем, вы сделали первые шаги в ветвлении Git! Многие команды используют Git, поэтому важно хорошо разбираться в системе управления и ее функциях. Еще так много предстоит узнать о Git. Вот некоторые рекомендуемые концепции для обсуждения:
- Cherry-pick.
- Advanced Git repository manipulation.
- Pull requests.
- Git commands.