Создать ветку в Git из другой ветки

у меня есть две ветви: мастер и dev

Я хочу создать "ветку" от dev филиала.

В настоящее время на ветке dev, я делаю:

$ git checkout -b myfeature dev

... (какая-то работа)

$ git commit -am "blablabla"
$ git push origin myfeature

но, визуализировав мои ветви, я получил:

--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**

Я имею в виду, что ветка, кажется, слил ФФ, и я не понимаю, почему...

что я делаю не так?

вы можете объясните мне, пожалуйста, как вы отделяетесь от другой ветви и возвращаетесь в удаленный репозиторий для ветви функций?

все это в ветвящейся модели, как описанный здесь.

4 ответов


Если вам нравится метод в ссылке, которую вы опубликовали, посмотрите на Git Flow.

Это набор скриптов, которые он создал для этого процесса.

но чтобы ответить на ваш вопрос:

$ git checkout -b myFeature dev

создает ветвь MyFeature от dev. Делайте свою работу, а затем

$ git commit -am "Your message"

теперь объединить изменения в dev без перемотки вперед

$ git checkout dev
$ git merge --no-ff myFeature

теперь нажмите изменения на сервере

$ git push origin dev
$ git push origin myFeature

и вы увидите, как вы хотите он.


Если вы хотите создать новую ветку из любой из существующих ветвей в Git, просто следуйте инструкциям.

первое изменение / проверка в ветку, из которой вы хотите создать новую ветку. Например, если у вас есть следующие ветки:

  • мастер
  • dev
  • branch1, равная

Так что если вы хотите создать новую ветку под названием "subbranch_of_b1" под веткой с именем "branch1, равная" выполните действия:

  1. оформить заказ или изменения в "branch1, равная"

    git checkout branch1
    
  2. Теперь создать новую ветку под названием "subbranch_of_b1" под "branch1, равная" используя следующую команду.

    git checkout -b subbranch_of_b1 branch1
    

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

  3. Теперь после работы с subbranch_of_b1 вы можете зафиксировать и нажать или объединить его локально или удаленно.

A sample Graphical Illustration Of Creating Branches Under another Branch


создать ветку

  • создать ветвь при извлечении главной ветви. Здесь коммиты в master будут синхронизированы с созданной вами веткой.

    $ git branch branch1

  • создать ветвь при извлечении branch1 . Здесь коммиты в branch1 будут синхронизированы с branch2

    $ git branch branch2


в кассу филиала

ветви переключателя команды проверки git или восстановить файлы рабочего дерева

  • $ 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
Singleline разница
  • $ git diff --color-words branch1..branch2

сделайте одновременную работу на dev филиала. Что происходит, так это то, что в вашем сценарии ветвь функции движется вперед от вершины ветви dev, но ветвь dev не изменяется. Легче рисовать как прямую линию, потому что ее можно рассматривать как движение вперед. Вы сделали это, чтобы указать A на dev, и оттуда вы просто продолжили параллельный путь. Эти две ветви на самом деле не разошлись.

Теперь, если вы сделаете фиксацию на dev, перед слиянием вы снова начните с того же commit, A, но теперь функции перейдут в C, а dev-в B. Это покажет разделение, которое вы пытаетесь визуализировать, поскольку ветви теперь расходятся.

*-----*Dev-------*Feature

и

       /----*DevB
*-----*DevA
       \----*FeatureC