В этом уроке мы сделаем следующее:
- Создать удаленный репозиторий
- Создайте локальную копию удаленного репозитория
- Создайте две ветки в локальной копии
- Перенести одну ветку в удаленный репозиторий
- Удалить локальные ветки
- Удалить удаленные ветки
Урок должен дать вам общее представление о процессе создания и удаления ветки, чтобы у вас была хорошая команда над необходимыми шагами, когда вам нужно удалить локальную или удаленную ветку.
Давайте начнем.
1. Создание удаленного репозитория
Создадим папку под названием project.git и инициализируйте его как удаленный репозиторий:
$ mkdir проект.мерзавец$ cd project.мерзавец
$ git init -bare
Инициализированный пустой репозиторий Git в / Users / zak / _work / LearnGIT / git_delete_branch / project.git /
2. Создание локальной копии удаленного репозитория
В новом месте давайте создадим локальную копию удаленного репозитория с именем project_local, используя команду clone.
Примечание. Если вы работаете с GitHub или BitBucket, вы выполните тот же процесс, чтобы клонировать репозиторий. В этом случае у вас будет ссылка SSH вместо полного пути к файлу, используемого здесь.
$ git clone / Users / zak / _work / LearnGIT / git_delete_branch / проект.git project_localКлонирование в project_local…
предупреждение: похоже, вы клонировали пустой репозиторий.
Выполнено.
3. Создание веток внутри локальной копии
Давайте сначала добавим файл в локальную копию, а затем отправим его в удаленный репозиторий:
$ cd project_local$ touch ReadMe.текст
$ git add -A
$ git commit -m "Инициализация модуля"
[master (root-commit) 81eb2a3] Инициализация модуля
1 файл изменен, 0 вставок (+), 0 удалений (-)
режим создания 100644 ReadMe.текст
$ git push origin master
Подсчет объектов: 3, готово.
Запись объектов: 100% (3/3), 221 байт | 0 байт / с, выполнено.
Всего 3 (дельта 0), повторно используется 0 (дельта 0)
К / Users / zak / _work / LearnGIT / git_delete_branch / project.мерзавец
* [новая ветка] мастер -> мастер
В приведенных выше командах мы создали файл с именем ReadMe.txt, добавил его в локальную копию, зафиксировал в локальной копии, а затем отправил изменения в удаленный репозиторий или в главную ветку источника.
Если вы проверите ветки, вы увидите главную ветку в локальной копии:
$ git ветка* владелец
Если вы проверите удаленные ветки, вы также увидите там главную ветку:
$ git branch -rпроисхождение / хозяин
Подсказка: вы можете использовать опцию '-a', чтобы увидеть все ветки в локальном и удаленном репозиториях вместе.
$ git branch -a* владелец
пульты / происхождение / мастер
Давайте создадим две ветки с именами b1 и b2 из основной ветки:
$ git ветка b1$ git ветка b2
Проверим, созданы ли ветки:
$ git веткаb1
Би 2
* владелец
Теперь мы собираемся внести некоторые изменения в ветки:
$ git checkout b1Перешел на ветку b1
$ touch branch1.текст
$ git add -A
$ git commit -m "Модификация Branch1"
[b1 a2f488e] Модификация Branch1
1 файл изменен, 0 вставок (+), 0 удалений (-)
режим создания 100644 branch1.текст
$ git checkout b2
Перешел на ветку b2
$ touch branch2.текст
$ git add -A
$ git commit -m "Модификация Branch2"
[b2 2abb723] Модификация Branch2
1 файл изменен, 0 вставок (+), 0 удалений (-)
режим создания 100644 branch2.текст
Проверим статусы локального и удаленного филиалов:
$ git веткаb1
* Би 2
владелец
$ git branch -r
происхождение / хозяин
Мы видим, что локально у нас есть три мастера ветки, b1 и b2. Но у нас в удаленном репозитории есть только мастер-ветка.
4. Отправка веток в удаленный репозиторий
Перенесем ветку b1 в удаленный репозиторий:
$ git push origin b1Подсчет объектов: 2, готово.
Дельта-сжатие с использованием до 4 потоков.
Сжатие объектов: 100% (2/2), готово.
Запись объектов: 100% (2/2), 249 байт | 0 байт / с, выполнено.
Всего 2 (дельта 0), повторно используется 0 (дельта 0)
К / Users / zakh / _work / LearnGIT / git_delete_branch / project.мерзавец
* [новая ветка] b1 -> b1
Вы можете проверить статусы локального и удаленного филиалов:
$ git веткаb1
* Би 2
владелец
$ git branch -r
origin / b1
происхождение / хозяин
Из приведенных выше статусов веток мы видим, что ветка b1 также доступна удаленно.
5. Удаление веток локально
Вы можете удалить ветки локально с помощью опции -d или -D.
git branch -dДавайте сначала проверим главную ветку, чтобы мы могли удалить ветки b1 и b2.
$ git checkout masterПерешел на ветку master
В вашей ветке установлена последняя версия "origin / master".
Давайте сначала попробуем опцию -d, чтобы удалить ветку b1:
$ git branch -d b1ошибка: ветка 'b1' не полностью объединена.
Если вы уверены, что хотите его удалить, запустите 'git branch -D b1'.
Ошибка сообщает вам, что вам нужно объединить изменения из ветки b1. Это мера предосторожности, поэтому вы по ошибке не потеряете свою работу на ветках. Вы можете использовать параметр -D, чтобы принудительно удалить слияние. Но в этом случае давайте объединим изменения из b1 и b2 в мастер и отправим его в удаленный репозиторий.
$ git слияние b1Обновление 81eb2a3… a2f488e
Перемотка вперед
филиал1.txt | 0
1 файл изменен, 0 вставок (+), 0 удалений (-)
режим создания 100644 branch1.текст
$ git слияние b2
Слияние по «рекурсивной» стратегии.
филиал2.txt | 0
1 файл изменен, 0 вставок (+), 0 удалений (-)
режим создания 100644 branch2.текст
$ git push origin master
Подсчет объектов: 4, готово.
Дельта-сжатие с использованием до 4 потоков.
Сжатие объектов: 100% (4/4), готово.
Запись объектов: 100% (4/4), 454 байта | 0 байт / с, выполнено.
Всего 4 (дельта 1), повторно используется 0 (дельта 0)
К / Users / zak / _work / LearnGIT / git_delete_branch / project.мерзавец
81eb2a3… 34db496 мастер -> мастер
Теперь попробуйте снова удалить ветки:
$ git веткаb1
Би 2
* владелец
$ git branch -d b1
Удалена ветка b1 (была a2f488e).
$ git ветка -d b2
Удалена ветка b2 (была 2abb723).
$ git ветка
* владелец
Вы успешно удалили ветки b1 и b2 локально.
6. Удаление удаленных филиалов
Когда вы проверяете удаленные ветки, вы все еще видите присутствие b1:
$ git branch -rorigin / b1
происхождение / хозяин
Вы можете использовать следующую команду, чтобы удалить удаленную ветку:
git pushТаким образом, вы можете удалить удаленную ветку b1 следующим образом:
$ git push origin - удалить b1К / Users / zakh_eecs / _work / LearnGIT / git_delete_branch / project.мерзавец
- [удалено] b1
Теперь, если вы проверите свои удаленные ветки, вы больше не должны видеть b1:
$ git branch -rпроисхождение / хозяин
Поздравления! Вы успешно удалили все созданные вами ветки. Практикуйтесь в создании большего количества веток и их удалении, чтобы освоить процесс удаления веток Git.
Дальнейшее изучение:
- https: // git-scm.com / book / en / v1 / Git-Branching-What-a-Branch-Is
- https: // git-scm.com / book / en / v2 / Git-Branching-Branches-in-a-Nutshell
- https: // git-scm.com / book / en / v2 / Git-Branching-Basic-Branch-and-Merging