У меня есть две ветви: master и dev
Я хочу создать «ветку функций» из ветки dev .
В данный момент на ветке dev делаю:
$ git checkout -b myfeature dev
... (некоторые работы)
$ git commit -am "blablabla"
$ git push origin myfeature
Но после визуализации моих веток я получил:
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
Я имею в виду, что ветка кажется слитой, и я не понимаю, почему ...
Что я делаю не так?
Не могли бы вы объяснить, пожалуйста, как вы переходите из другой ветви и возвращаетесь в удаленный репозиторий для ветви функций?
Все это в модели ветвления, как описано здесь .
источник
myFeature
после того, как оно было объединено с остроумиемdev
?myFeature
ветвь была передана на сервер перед слиянием, то ничего. Но еслиmyFeature
он еще не отправлен на сервер, и вы хотите, чтобы он появился на сервере, вы должны отправить его в апарт.git checkout -b myFeature dev
же, как эти 3 команды:,git checkout dev
тогдаgit branch myFeature
, а потомgit checkout myFeature
?--no-ff
выглядит слияниеЕсли вы хотите создать новую ветку из любой из существующих веток в Git, просто следуйте инструкциям.
Сначала измените / извлеките ветку, из которой вы хотите создать новую ветку. Например, если у вас есть такие ветки, как:
Так что если вы хотите создать новую ветку под названием «subbranch_of_b1» под названием филиала «branch1» выполните следующие действия:
Оформить заказ или перейти на "branch1"
Теперь создайте новую ветвь с именем «subbranch_of_b1» под «branch1», используя следующую команду.
Приведенное выше создаст новую ветвь с именем subbranch_of_b1 под ветвью branch1 (обратите внимание, что
branch1
в приведенной выше команде не обязательно, поскольку HEAD в данный момент указывает на нее, вы можете указать ее, если находитесь в другой ветке).Теперь после работы с subbranch_of_b1 вы можете фиксировать и перемещать его локально или удаленно.
переместить subbranch_of_b1 на удаленный
источник
git checkout -b some-branch
это сокращение дляgit checkout -b some-branch master
. Оказывается, этоgit checkout -b some-branch
сокращение дляgit checkout -b some-branch <current_active_branch>
Создать филиал
$ git branch branch1
$ git branch branch2
Оформить заказ Филиал
команда git checkout переключает ветки или восстанавливает файлы рабочего дерева
$ git checkout branchname
Переименование филиала
$ git branch -m branch1 newbranchname
Удалить ветку
$ git branch -d branch-to-delete
$ git branch -D branch-to-delete
( принудительное удаление без проверки статуса объединения )Создать и переключить ветку
$ git checkout -b branchname
Филиалы, которые полностью включены
$ git branch --merged
************************** Различия между ветками [git diff branch1..branch2] ************** **********
Многолинейная разница$ git diff master..branch1
$ git diff --color-words branch1..branch2
источник
git push origin :old-name new-name
для удаления ветки старого имени и нажмите локальную ветку с новым именем.Делаем одновременную работу на
dev
ветке. Что происходит, так это то, что в вашем сценарии ветвь объектов движется вперед от вершины ветки dev, но ветка dev не изменяется. Проще нарисовать прямую линию, потому что это можно рассматривать как движение вперед. Вы сделали это, чтобы указать A на dev, и оттуда вы просто продолжили идти по параллельному пути. Две ветви на самом деле не разошлись.Теперь, если вы сделаете коммит на dev, перед слиянием вы снова начнете с того же коммита, A, но теперь функции перейдут к C, а dev к B. Это покажет разделение, которое вы пытаетесь визуализировать, как ветви сейчас разошлись.
Против
источник
Git 2.23 вводит
git switch
иgit restore
разделяет обязанностиgit checkout
Создание новой ветви из существующей ветви с git 2.23:
git switch -c my-new-branch
Перешел на новую ветку "my-new-branch"
Посмотрите на это сообщение в блоге Github, объясняющее изменения более подробно:
источник
Чтобы создать ветку из другой ветки в вашем локальном каталоге, вы можете использовать следующую команду.
Например:
источник
Если вы хотите сделать ветку из какой-то другой ветки, выполните следующие шаги:
Предположения :
BranchExisting
это название ветки, из которой вам нужно сделать новую ветку с именемBranchMyNew
.Шаги :
Принесите ветку на свой локальный компьютер.
Эта команда создаст новую ветку в вашей локальной сети с таким же именем.
Теперь от проверки мастер ветки до вновь извлеченной ветки
Вы сейчас в BranchExisting. Теперь создайте новую ветку из этой существующей ветви.
Ну вот!
источник
Для создания ветки из другого можно также использовать этот синтаксис:
Это немного короче, чем "git checkout -b" + "git push origin"
источник