Как работают ветки Git? – CloudSavvy ИТ
Ветки являются основной функцией отслеживания версий Git и постоянно используются командами, работающими над одной и той же кодовой базой программного обеспечения. Мы углубимся в то, как они работают внутри, и как вы можете использовать их для улучшения вашего рабочего процесса Git.
Искусственный интеллект поможет тебе заработать!
Что такое филиалы на самом деле?
Ветки используются для разделения истории Git. Вы можете думать о коммитах Git как о череде изменений, уходящих в прошлое. Вы можете «проверить» любой из этих коммитов и переместить свой локальный каталог назад во времени в состояние, в котором он был, когда этот коммит был сделан.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Ветки обычно используются для работы над экспериментальными функциями или изменениями, которые требуют времени, или чем-то еще, что может нарушить репозиторий. Например, вы можете работать над рефакторингом большого компонента вашей кодовой базы, и до тех пор, пока это не будет сделано, вы хотите, чтобы основная ветка была стабильной.
Как только новая функциональная ветвь станет стабильной, ее можно снова объединить с основной, часто через запрос на вытягиваниекоторый представляет собой процесс, позволяющий выполнить проверку и тестирование кода до внесения изменений.
Однако под капотом ветки работают немного иначе, чем вы могли бы ожидать на первый взгляд. В Git ветки — это просто метки или указатели на конкретный коммит. Вот и все, ветка master просто указывает на последний коммит, сделанный на master; когда вы делаете новую фиксацию, метка обновляется, чтобы указать на новую фиксацию.
Хотя полезно думать о коммитах как о движении вперед во времени; на самом деле Git фиксирует точки друг относительно друга. Каждый коммит имеет ссылку на последний коммит, и эта цепочка используется для построения состояния репозитория.
Однако, если вы создадите новую ветку, все будет работать немного по-другому. Любая ветка, которую вы извлекли (с помощью git checkout
Чтобы создать ветку в этом примере, вы должны сначала убедиться, что ваш репозиторий HEAD настроен на главную ветку. Это потому, что вы можете создавать ветки, начиная откуда угодно, включая прошлые коммиты или коммиты в других ветках.
мастер проверки git
Затем создайте новую ветку и переключитесь на нее:
Функция ветки git Функция проверки git
На данный момент в вашем репозитории ничего не изменилось. Метки функциональной и главной ветки указывают на один и тот же коммит.
Однако все, что вы зафиксируете с этого момента, будет добавлено в ветку функций. В частности, будет создана новая фиксация, настроенная так, чтобы она указывала на текущую фиксацию, а метка «функция» будет обновлена, чтобы указывать на эту новую фиксацию.
Вы даже можете проверить master и сделать больше коммитов в основной ветке. Это не повлияет на ветвь функции, потому что все, что знает метка, это то, что она указывает на эту конкретную фиксацию. Он не будет обновлен основной меткой.
Слияние и перебазирование
Конечно, ветки не были бы слишком полезными, если бы они застряли там навсегда, поэтому Git предоставляет инструменты для их слияния обратно в главную ветку. Технически вы можете объединять подветви с любой другой веткой, если истории совместимы.
Самый простой случай, когда у вас есть простая ветка, которую просто нужно объединить обратно. Вы можете проверить ветку master, а затем запустить git merge feature, чтобы «переиграть» все коммиты, сделанные в ветке feature, на master.
Это включает их в основную временную шкалу и создает новую «коммит слияния» с изменениями.
Однако это не всегда так просто, и во многих случаях вам придется объединить конфликты которые необходимо решить. Это может включать ветки, изменяющие одни и те же строки в файлах, перемещение или удаление файлов или другие виды ошибок, возникающие при изменении программного обеспечения с момента создания функциональной ветки.
Если у вас есть долго работающая ветка функций, один из способов свести к минимуму эту проблему — выполнять частые слияния, на этот раз в обратном порядке — от мастера к функции. Это поддерживает актуальность функций и, хотя на самом деле не снижает требуемой рабочей нагрузки, предотвращает их накопление в огромный беспорядок.
Эта стратегия распространена для долгоживущих веток и обычно считается лучшей практикой для Git.
Другим инструментом, который также используется в этом сценарии, является перебазирование. По сути, перебазирование похоже на выбор всей ветки и ее перемещение в новое место, часто в самый последний коммит в репозитории. В некоторых случаях это приводит к более чистой истории Git и является предпочтительным решением для некоторых сложных ситуаций.
Однако история Git «неизменяема», и из-за этого перебазирование копий коммитов вместо фактического их перемещения. Это может привести к множеству проблем в общих ветках, если они не будут должным образом скоординированы с вашей командой — если вы перебазируете, а ваш коллега сделает новую фиксацию в «старой», теперь удаленной функциональной ветке, она останется незавершенной. Им придется спрятать коммит и поместить его в новую ветку, чтобы согласовать изменения.
Как вы используете ветки?
Чтобы начать создавать новую ветку, вам нужно привести репозиторий в нужное состояние, чтобы метка новой ветки начиналась там, где вы хотите. Если вы выполняете ответвление от мастера, просто проверьте всю ветку, чтобы начать с последней фиксации. В противном случае вы можете перевести репозиторий в отсоединенное состояние HEAD, проверив отдельный коммит.
git checkout мастер git checkout aa3e570923b8ee61414cec17d9033faab4f084a6
Затем вы можете создать новую ветку и переключиться на нее с помощью проверки:
Функция ветки git Функция проверки git
Это можно сделать одной командой с флагом -b для проверки:
функция git checkout -b
На этом этапе любые коммиты, сделанные в вашем репо, будут сделаны в новой ветке.
Если вам нужно снова поменять местами ветки, просто запустите git checkout master, чтобы вернуться в нормальное состояние.
Если у вас есть локальные изменения, которые вам нужно переместить, вы можете поместить их в git stash. Изменения будут сохранены и могут быть повторно применены после замены веток.
git stash git checkout функция git stash применить
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)