Создать новую ветку из хранилища, которое было разветвлено ранее - PullRequest
0 голосов
/ 19 мая 2018

Я разветвил общедоступный репозиторий A в B. В A есть ветвь с именем "dev", которая также находится в B, где я и взял на себя обязательство.Теперь нужно внести несвязанные изменения в A, чтобы я мог сделать PR из B.

Как я могу получить новую ветку "dev" в B, чтобы я мог зафиксировать необходимые изменения перед отправкойPR от B?

Для упрощения схема выглядит следующим образом:

A

  • dev

B

  • dev (необходимо подождать, пока изменения нового dev будут объединены в A dev)
  • newdev (объединится с A dev до объединения B dev)

1 Ответ

0 голосов
/ 19 мая 2018

Когда вы разветвляетесь на B, а затем клонируете B и работаете с ним локально, у вас по сути есть 3 отдельных репозитория: A, B и ваш локальный C.

В вашем локальном репозитории C вы можете добавить A и Bкак "пульты".Проверьте git remote -v, чтобы увидеть, какие пульты у вас есть.Я бы дал им описательные имена на этом этапе.Вы можете переименовать пульт и добавить новый пульт в локальный репозиторий, скажем: A = origin, B = fork.

Если вы добавите эти пульты изапустите git fetch, и вы получите 3 различные ветви: dev (ваш локальный dev), origin/dev ("dev" на A) и fork/dev ("dev" на B).

Теперь, чтобы избежать путаницы, я бы дал вашим локальным ветвям dev и newdev больше описательных имен, отражающих работу, которую вы делаете, и использовал бы эти имена вместо этого.Например, если в dev реализована функция foo , а в newdev будет реализована функция bar , вы можете сделать:

# make "foo" branch to refer locally to the "dev" state on B
git branch foo fork/dev 
# make "bar" branch to refer locally to the "dev" state on A
git branch bar origin/dev

Теперь выможете git checkout bar, реализовать вашу функцию, протолкнуть ее на форк (он же B) с помощью git push fork, перейти на github и сделать свой пиар.Интерфейс позволит вам выбрать исходную ветвь (bar) и целевую ветвь (origin/dev).

...