Как сделать новую ветку в git

Добавил пользователь Алексей Ф.
Обновлено: 04.10.2024

Чтобы создать новую ветку в Git необходимо выполнить команду (вместо mybranch укажите название вашей новой ветки):

После выполнения команды, будет создана новая ветка с именем, которое вы указали. Обратите внимание, что вы все еще находитесь в текущей ветке.

Переключаемся на новую ветку

Чтобы переключиться на новую ветку, выполните команду:

Создаем и переключаемся одной командой

Чтобы создать ветку и сразу же на нее переключиться, используется команда checkout с ключом -b :

Lorem ipsum dolor

Как в Git переключиться на нужную ветку

Как в Git посмотреть состояние веток

Как удалить ветку в Git

Заключение

С ветками в Git можно производить много разных операций. Основные из них мы сегодня обсудили. Теперь вы знаете , как создать новую ветку в Git, как переключит ь ся на другую ветку, как проверить статус веток и др.

Используя Git в своей работе, вы рано или поздно столкнетесь с работой с ветками, поэтому держите эту статью-шпаргалку в закладках.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.


Пользуясь Git, вам очень часто придется перемещаться по веткам. Для этого используется команда git checkout.

Как создать новую ветку в Git и перейти в нее

Чтобы создать новую ветку, нужно использовать команду git checkout с флагом -b и указанием имени ветки. Таким образом вы создадите ответвление той ветки, в которой находитесь. История новой ветки начнется с момента ответвления.

Допустим, вы находитесь в ветке master :

Вы видите, что была создана новая ветка с именем my-feature . Она является ответвлением master . После создания новой ветки вы автоматически перешли в нее.

Как перейти в уже существующую ветку в Git

Чтобы перейти в уже существующую ветку, используйте ту же команду git checkout , но без добавления флага -b . Команде нужно передать имя ветки, в которую вы хотите перейти:

Для перехода в предыдущую ветку (т. е. ту, из которой вы перешли в текущую) можно передать команде git checkout не имя ветки, а просто дефис:

Как переместиться к определенному коммиту

Чтобы перейти к определенному коммиту, используйте ту же команду git checkout , но вместо имени ветки передайте ей SHA коммита.

Ветки по сути являются просто указателями трекерами отдельных коммитов в истории Git.

Как найти SHA коммита

Один из способов найти SHA коммита — просмотреть лог Git. Делается это при помощи команды git log :

В первой строке каждого коммита после слова commit есть длинная строка букв и цифр: 94ab1fe28727…

Вот она и называется SHA. Это уникальный идентификатор, генерируемый для каждого коммита.

Чтобы перейти к определенному коммиту, вам нужно лишь передать его SHA в качестве параметра команды git checkout :

Примечание: обычно можно использовать всего несколько первых символов SHA, потому что первые 4-5 символов скорее всего образуют уникальную комбинацию в рамках проекта.

Что такое detached HEAD (отсоединенный указатель HEAD)?

[a detached HEAD state] означает, что HEAD направлен на конкретный коммит, а не на именованную ветку.

В общем, HEAD (один из внутренних указателей Git, отслеживающий, где именно в истории Git вы находитесь) отклонился от известных веток, так что все изменения с этого момента будут формировать новый путь в истории Git. Поэтому Git хочет убедиться, что вы именно этого хотите, и в выводе предлагает вам пространство для экспериментов:

Исходя из этого, у вас есть два варианта:

  1. поэкспериментировать, а затем сбросить все изменения, вернувшись в предыдущую ветку
  2. продолжить работу с этого места и начать новую ветку из этой точки.

Для возвращения в предыдущую ветку (со сбросом всех изменений) используйте команду git switch - .

Если вы все же хотите сохранить свои изменения, внесенные в состоянии detached HEAD, и продолжить работу с этого места, можете использовать git switch -c , чтобы создать новую ветку из этой точки.

Заключение

Команда git checkout — очень полезная и многофункциональная. С ее помощью можно создавать новые ветки, перемещаться по веткам и коммитам и т. д.

Продолжаю совместно с вами постепенно изучать магию Git\GitHub.

Слово магия здесь применено не случайно - не иначе, как магией возможности Git\GitHub не назовешь. По крайней мере, я впечатлен этими возможностями. Другое дело, что процесс изучения Git у меня лично идет как-то тяжеловато. Ну, это не страшно - главное, не останавливаться!

В этом разделе я попытаюсь осветить для себя (и возможно, для вас, уважаемый читатель) вопрос создания ветвей (branches) в Git, перемещение между ветвями (branches), слияние (merge) ветвей. Этот вопрос очень подробно и хорошо описан на странице официальной документации - “Git Branching - Basic Branching and Merging”. Здесь я попробую самостоятельно описать данный вопрос.

Инициализация Git-репозитория

Создаю тестовую директорию , в которой будут производиться эксперименты по созданию ветвей в Git. Внутри этой директории создаю два файла - индексный файл и файл таблиц стилей. А затем инициализирую Git-репозиторий, добавляю созданные файлы под версионный контроль Git:

Обратите на строку в выводе команды . Это не пустой набор служебной информации - здесь говориться о том, что в ветви нечего фиксировать и рабочая директория чистая.

Итак, мы уже кое-что узнали. А именно - при инициализации Git-репозитория была автоматически создана ветвь (branch) по имени . И на данный момент мы находимся в этой ветви.

Конечно, на самом деле это пока мало о чем говорит, так как не с чем сравнивать. Поэтому давайте я немного отредактирую оба файла и , проиндексирую\зафиксирую их.

В браузере примерный вид странички будет выглядеть таким образом:

Git - ветвь (branch) master

Git - создание новой ветви (branch)

В системе Git (как уже упоминалось ранее) имеется механизм ветвления (branches). Попробую на словах объяснить, что он из себя представляет.

Допустим, в моем текущем проекте, у которого имеются два файла, нужно внести кардинальные изменения. Причем, изменения такого рода, что они могут нарушить работу уже существующего проекта. Чтобы обезопасить себя (подстраховать), создаю точную копию существующего проекта и перехожу в нее для дальнейшей работы.

Давайте я на практике осуществлю вышесказанные действия. Для этого создаю новую ветвь с произвольным именем , которая на этом этапе будет точной копией ветви :

Строка услужливо информирует, что меня автоматически “перебросило” во вновь ветвь . Можно проверить себя, набрав в консоли:

Строка говорит сама за себя.

Отлично! Теперь давайте я внесу некоторые изменения в файлы и и мы вместе посмотрим на результат в окне браузера. Изменения будут касаться добавления блока-обертки, еще нескольких параграфов и другой легкой стилизации.

Не забуду также проиндексировать и зафиксировать внесенные изменения. Обратите внимание на вид команды - . Эта команда является сокращенным вариантом двух команд: и . Применяется, когда нужно “проскочить” этап индексирования и сразу зафиксировать изменения.

Смотрим, что у нас получилось в окне браузера - то, что и ожидалось:

Git - ветвь (branch) second

Git - переключение между ветвями (branches)

А теперь настал самый интересный момент. Как вы помните, мы сейчас находимся в ветви . Давайте я переключусь в ветвь и мы снова посмотрим в окно браузера:

Git - ветвь (branch) master

Оп! Мы видим старую картину - Git “запечатлел” тот момент, когда мы совершили переход из ветви в ветвь . Другими словами, мы вернулись в последнее зафиксированное состояние ветви :

Если я снова вернусь в ветку и запущу команду просмотра логов Git, то коммитов окажется больше:

Мне кажется, уже сейчас должно быть понятно, что такое ветви (branches) в Git и для чего они предназначены. На самом деле это действительно очень просто.

Git - слияние ветвей (branches)

В предыдущем шаге я создал ветвь , в которую внес “рискованные” изменения, чтобы проверить, “оправдают” ли они себя. Изменениями я доволен и хотел бы добавить их в первоначальную ветку , чтобы потом продолжить развитие проекта уже с этого места.

Фактически, я хочу сделать слияние двух веток - и . Это сделать очень просто - для этого я перехожу в ветку . То есть, я должен находиться в той ветке, в которую я вношу изменения из другой ветки. А затем произвожу само слияние:

Команда слияния проста - я просто указываю имя той ветки (branch), которую хочу слить (merge) с текущей, в которой я нахожусь на данный момент.

При слиянии ветвей зачастую может возникнуть ситуация, когда происходит конфликт между двумя ветвями. Рассмотрение вопроса решения конфликтов при слиянии не рассматривается мною, так как на данный момент еще не освоил этот вопрос до конца.

Давайте снова “заглянем” в окно браузера - что он нам интересного покажет?

Git - результат слияния двух ветвей master и second

Показал он то, что и следовало показать - результат объединения двух ветвей и .

Git - графическое представление ветвей (branches)

Система Git имеет в своем составе возможность графического представления ветвления в репозитории. Причем, такое представление можно сделать даже в консоли, с помощью псевдографики.

Это можно сделать, набрав в консоли команду:

На Stack Overflow я нашел примеры красивых изображений консоли с псевдографическим выводом команды :

Красивая псевдографика команды git log

Красивая псевдографика команды git log

На самом деле вариантов использования команды с ключом бесчисленное множество. Поэтому нужно выбирать именно то, что нужно и нравиться именно вам.

Помимо псевдографики, ветви в Git можно визуализировать с помощью настоящего графического приложения. Под Mac OS X и Linux имеется достаточно большое количество таких приложений. Например, под Mac OS X это GitX, под Linux - Gitk или Gitg:

Приложение Gitg под Linux

Git - удаление ветви (branch)

В разделе слияния ветвей в Git я научился процессу объединения двух ветвей в одну. Такой процесс в Git имеет название (слияние). Теперь ветвь имеет в себе все, что есть и в ветви . Поэтому ветвь можно удалить.

Выполняется это командой:

Посмотрим на вывод команды :

У меня осталась одна ветвь - .

CMUS - изменить тему оформления

После того, как [CMUS][1] успешно установлен, хорошо было бы - изменить тему оформления - с той, которая есть по умолчанию.Это легко сдел. … Continue reading

Пора сделать наш hello world более выразительным. Так как это может занять некоторое время, лучше переместить эти изменения в отдельную ветку, чтобы изолировать их от изменений в ветке master.

01 Создайте ветку

Выполните:

Примечание : git checkout -b является шорткатом для git branch за которым идет git checkout .

02Добавьте файл стилей style.css

Выполните:

Файл: lib/style.css

Выполните:

03Измените основную страницу

Обновите файл hello.html, чтобы использовать стили style.css.

Файл: lib/hello.html

Выполните:

04Измените index.html

Обновите файл index.html, чтобы он тоже использовал style.css

Файл: index.html

Выполните:

05 Далее

Теперь у нас есть новая ветка под названием style с 3 новыми коммитами. Далее мы узнаем, как осуществлять навигацию и переключаться между ветками.

Читайте также: