Когда вы разветвляетесь на 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
).