GIT использует филиалы для изоляции потоков развития, чтобы предотвратить загрязнение стабильной отделения высвобождения. Привлечение работы в ветвь в основной поток означает объединение ветвей. Вот как вы это делаете.
Что такое слияние в git?
Подготовка к объединению ветви в git
Выполнение слияния
Выполнение быстрого слияния в git
Как разрешить конфликты слияния в GIT
В конце концов все сливается
Что такое слияние в git?
GIT был разработан, чтобы сделать ветвление простым и быстрым. В отличие от других систем управления версиями, ветвление на GIT является тривиальным вопросом. В частности, в проектах с несколькими разработками, Branching является одним из основных организационных инструментов GIT.
Ветвы Sandbox Новые усилия по разработке, чтобы код мог быть изменен или добавлен, не влияя на код в других филиалах, особенно в основной или главной ветви. Обычно это содержит стабильную версию вашей кодовой базы.
Изоляция этих изменений от вашей стабильной кодовой версии имеет смысл. Но рано или поздно новый код будет протестирован, просмотр и резиновый укладчик, который будет перевернут в главную ветвь. В этот момент вам нужно объединить свою ветвь в главную ветку.
На самом деле, в филиалах могут быть подсчета, чтобы вы могли объединить свою ветвь в какую-то другую ветвь вместо главной ветви. Просто помните, что слияния всегда берут одну ветвь и объединяют ее в цель ветвь, какая бы эта ветвь ни была. Если вы хотите объединить свою главную ветвь в другую ветвь, вы даже можете сделать это.
Как и большинство действий в GIT, вы выполняете слияния в своем местном репозитории и подталкиваете их к своему удаленному хранилищу.
Подготовка к объединению ветви в git
У нас есть небольшой проект разработки с местным хранилищем GIT и удаленным репозиторием GIT. Мы создали филиал под названием «Bugfix14» из филиала «Master» и работали над решением ошибки.
Эта работа завершена, и мы проверили наш код. Все работает, как и ожидалось. Мы хотим перевернуть эти изменения в главную ветвь, чтобы наше исправление было частью следующего выпуска программного обеспечения.
Есть небольшая подготовка, которую нужно сделать, прежде чем мы выполним слияние. Нам нужно убедиться, что целевая филиал - в данном случае «мастер» филиал - и филиал, который мы собираемся слиться, обновляется оба.
- На Branch Bugfix14 : Это наша нынешняя филиал.
- Ваш филиал обновлен с «Origin/Bugfix» : Филиал в нашем местном репозитории имеет ту же историю коммита, что и филиал в отдаленном репозитории. Это означает, что они идентичны.
- Нечего совершать В зоне постановки нет изменений, которые не были совершены.
- рабочее дерево чисто : В рабочем каталоге нет неостановленных изменений.
Все они указывают на то, что филиал обновлена, и мы будем ясно продолжить. Если что -то из них указывало, что существуют изменения, нам нужно было бы поставить их, совершить их и подтолкнуть к пульту. Если кто -то еще работал над этими файлами, нам, возможно, придется извлечь их изменения из удаленного репозитория.
Проверка филиала, которую мы собираемся объединить, упрощает процесс слияния. Это также позволяет нам проверить, что это актуально. Давайте посмотрим на главную ветвь.
Мы получаем те же подтверждения, что и «мастер» филиал актуальна.
СВЯЗАННЫЙ: Как выбрать рабочий процесс GIT & amp; Модель ветвления, которая подходит для вашей команды
Выполнение слияния
Ветвь «Bugfix14» была разветвлена от «мастер». После создания филиала «Bugfix14» была посвящена филиале «Мастер». Там было несколько коммитов в филиал «Bugfix14».
Мы позаботились о том, чтобы наши два филиала были в курсе, и мы проверили «Мастер». Мы можем выпустить команду, чтобы объединить филиал «Bugfix14» в ветвь «Мастер».
Слияние происходит. Ветвь «Bugfix14» все еще существует, но теперь изменения, внесенные в эту ветвь, были объединены в «мастер».
В этом случае команда Merge выполняет Трехстороннее слияние Анкет Есть только две ветви, но есть три коммита. Они являются руководителем любой филиала, и третий коммит, который представляет само слияние.
Чтобы обновить наш удаленный репозиторий, мы можем использовать git push командование
Некоторые люди предпочитают удалять боковые ветви, как только они их объединили. Другие позаботятся о том, чтобы сохранить их как запись истинной истории развития проекта.
Если вы хотите удалить ветку, вы можете сделать это, используя
Git Branch
командовать с
-Д
(удалить) опция.
К Удалить ветвь В удаленном хранилище используйте эту команду:
У вас будет линейная история коммита, но это не будет настоящей историей.
СВЯЗАННЫЙ: Как удалить ветви GIT на местных и удаленных репозиториях
Выполнение быстрого слияния в git
Если вы не совершили никаких обчинений в «мастер», ваша история будет выглядеть так. Это также будет выглядеть, если у вас переиграл Ваша ветвь разработки так, чтобы она была прикреплена к концу «мастер» филиала.
Поскольку в филиале «Мастер» нет коммитов, чтобы объединить филиал «Bugfix15», все, что нужно сделать GIT, - это указать на указатель головы «мастер» на последнюю фиксацию филиала «BugFix15».
Git выполнит быстрое слияние Всякий раз, когда это может Анкет Если поступить в «мастер» ветвь означает, что быстрое слияние невозможно, GIT будет использовать Трехстороннее слияние Анкет
Вы не можете
сила
Переднее слияние-в конце концов, это может невозможно, но вы можете заявить, что это будет быстрое слияние или ничего. Существует вариант, который инструктирует GIT использовать быстрое слияние, если он может, но не делать трехстороннее слияние, если не может. Вариант
-только что-то
(только быстрое слияние).
Это объединяет ветвь «Bugfix15» в ветвь «мастер», но только в случае быстрого слияния возможно.
В этом случае были проведены коммиты в «мастер», поэтому быстрое слияние невозможно.
Как разрешить конфликты слияния в GIT
Если в обеих ветвях были изменены те же части одного и того же файла, ветви не могут быть объединены. Человеческое взаимодействие требуется для разрешения противоречивых изменений.
Здесь мы внесли изменения в файл под названием «rot.c» в филиале под названием «Bugfix17», который мы хотим объединить в «Мастер». Но «rot.c» был изменен в «Мастер».
Когда мы пытаемся объединить его, мы получаем предупреждение о том, что есть конфликты. GIT перечисляет противоречивые файлы и сообщает нам, что слияние не удалось. Мы могли бы полностью отступить, используя
-АБОРТ
вариант:
Но разрешение слияний не так страшно, как кажется. GIT проделал некоторую работу, чтобы помочь нам. Если мы отредактируем один из противоречивых файлов - в нашем случае у нас есть только один - мы найдем конфликтующие разделы кода, выделенные для нас.
Каждый конфликт ограничен семью меньшими персонажами »
& lt; & lt; & lt; & lt; & lt;
И семь больше персонажей »
& gt; & gt; & gt; & gt; & gt;
«С семью равными знаками»
=======
" между ними.
- Код выше знаков равных из филиала, которую вы слияете в Анкет
- Код под знаком Equals - это код из филиала, которую вы пытаетесь слияние Анкет
Вы можете легко искать один из наборов из семи символов и перейти от конфликта к конфликту через ваш файл. Для каждого конфликта вам нужно выбрать, какой набор изменений вы собираетесь сохранить. Вы должны отредактировать код, который вы отвергаете, и линии с семью символами, которые добавили GIT.
Мы собираемся сохранить код из филиала «Bugfix17». После редактирования наш файл выглядит так.
Теперь мы можем продолжать слияние. Но обратите внимание, мы используем
совершить
командовать это, а не
слияние
командование
Мы совершаем изменение, постановив файл и совершив его как обычно. Мы проверим статус, прежде чем мы сделаем окончательный коммит.
Слияние завершено. Теперь мы можем подтолкнуть это к нашему удаленному репозиторию.
СВЯЗАННЫЙ: Как исправить, редактировать или отменить коммиты (изменение истории GIT)
В конце концов все сливается
В конце концов, все ветви должны быть объединены, чтобы изменения в них не стали осиротевшими и не забываемыми.
Объединение филиалов легко, но дело с конфликтами может усложняться в занятых, более крупных командах. Разрешение конфликтов может потребовать ввода каждого разработчика, чтобы объяснить, что делает их код и почему они внесли свои изменения. Вы должны понять это, прежде чем вы сможете принять обоснованное решение о том, какие редакторы сохранить.
- › Как переименовать ветвь в git
- › Как проверить удаленную филиал GIT
- › Как спрятать изменения в git
- › Как переключить ветви в GitHub
- › Git rebase: все, что вам нужно знать
- › OnePlus 11 здесь, но с грубым стартом
- › Microsoft Edge получает чат с искусственным интеллектом и новый образ на Windows
- › Лучшие наушники для поклонников iPhone просто достигли самой низкой цены