SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы
НазадМетки: git
За создание новых веток и слияние их воедино отвечает несколько Git команд.
Команда git branch
— это своего рода "менеджер веток". Она умеет перечислять ваши ветки, создавать новые, удалять и переименовывать их.
Большая часть главы Ветвление в Git посвящена этой команде, она используется повсеместно в этой главе. Впервые команда branch
была представлена в разделе Создание новой ветки главы 3, а большинство таких её возможностей как перечисление и удаление веток были разобраны в разделе Управление ветками главы 3.
В разделе Отслеживание веток главы 3 мы показали как использовать сочетание git branch -u
для отслеживания веток.
Наконец, мы разобрались что происходит за кулисами этой команды в разделе Ссылки в Git главы 10.
Команда git checkout
используется для переключения веток и выгрузки их содержимого в рабочий каталог.
Мы познакомились с этой командой в разделе Переключение веток главы 3 вместе с git branch
.
В разделе Отслеживание веток главы 3 мы узнали как использовать флаг --track
для отслеживания веток.
В разделе Использование команды checkout
в конфликтах главы 7 мы использовали эту команду с опцией --conflict=diff3
для разрешения конфликтов заново, в случае если предыдущее решение не подходило по некоторым причинам.
Мы рассмотрели детали взаимосвязи этой команды и git reset
в разделе Раскрытие тайн reset главы 7.
Мы исследовали внутренние механизмы этой команды в разделе HEAD главы 10.
Команда git merge
используется для слияния одной или нескольких веток в текущую. Затем она устанавливает указатель текущей ветки на результирующий коммит.
Мы познакомили вас с этой командой в разделе Основы ветвления главы 3. И хотя git merge
встречается в этой книге повсеместно, практически все использования имеют вид git merge <branch>
с указанием единственной ветки для слияния.
Мы узнали как делать «сплющенные» слияния (когда Git делает слияние в виде нового коммита, без сохранения всей истории работы) в конце раздела Форк публичного проекта.
В разделе Продвинутое слияние главы 7 мы глубже разобрались с процессом слияния и этой командой, включая флаги -Xignore-all-whitespace
и --abort
, используемый для отмены слияния в случае возникновения проблем.
Мы научились проверять криптографические подписи перед слияниями если ваш проект использует GPG в разделе Подпись коммитов главы 7.
Ну и наконец в разделе Слияние поддеревьев главы 7 мы познакомились со слиянием поддеревьев.
Команда git mergetool
просто вызывает внешнюю программу слияний, в случае если у вас возникли проблемы слияния.
Мы вкратце упомянули о ней в разделе Основные конфликты слияния главы 3 и рассказали как настроить свою программу слияния в разделе Внешние программы слияния и сравнения главы 8.
Команда git log
используется для просмотра истории коммитов, начиная с самого свежего и уходя к истокам проекта. По умолчанию, она показывает лишь историю текущей ветки, но может быть настроена на вывод истории других, даже нескольких сразу, веток. Также её можно использовать для просмотра различий между ветками на уровне коммитов.
Практически во всех главах книги эта команда используется для демонстрации истории проекта.
Мы познакомились c git log
и некоторыми её деталями в разделе Просмотр истории коммитов главы 2. Там мы видели использование опций -p
и --stat
для получения представления об изменениях в каждом коммите, а также --pretty
and --oneline
для настройки формата вывода этой команды — более полным и подробным или кратким.
В разделе Создание новой ветки главы 3 мы использовали опцию --decorate
чтобы отобразить указатели веток на истории коммитов, а также --graph
чтобы просматривать историю в виде дерева.
В разделах Небольшая команда главы 5 и Диапазоны коммитов главы 7 мы познакомили вас с синтаксисом branchA..branchB
, позволяющем команде git log
показывать только коммиты, присутствующие в одной ветке, но отсутствующие в другой. Мы довольно подробно рассматриваем этот вопрос в разделе Диапазоны коммитов.
В разделах История при слиянии и Три точки главы 7 мы рассмотрели синтаксис branchA…branchB
и опцию --left-right
позволяющие увидеть, что находится в одной или в другой ветке, но не в них обеих сразу. Также в разделе История при слиянии мы рассмотрели опцию --merge
, которая может быть полезной при разрешении конфликтов, а также --cc
для просмотра конфликтов слияния в истории проекта.
В разделе RefLog-сокращения главы 7 мы использовали опцию -g
для вывода git reflog
, используя git log
.
В разделе Поиск главы 7 мы рассмотрели использование опций -S
и -L
для поиска событий в истории проекта, например, истории развития какой-либо фичи.
В разделе Подпись коммитов главы 7 мы показали, как использовать опцию --show-signature
для отображения строки валидации подписи для каждого коммита в git log
.
Команда git stash
используется для временного сохранения всех незафиксированных изменений с целью очистки рабочего каталога без необходимости фиксировать незавершённую работу в текущей ветке.
Эта команда практически целиком раскрыта в разделе Припрятывание и очистка главы 7.
Команда git tag
используется для задания постоянной метки на какой-либо момент в истории проекта. Обычно она используется для релизов.
Мы познакомились и разобрались с ней в разделе Работа с тегами главы 2 и использовали на практике в разделе Помечайте свои релизы главы 5.
Мы научились создавать подписанные с помощью GPG метки, используя флаг -s
, и проверять их, используя флаг -v
, в разделе Подпись главы 7.