Как перебазировать всю мастер ветку git repo - PullRequest
1 голос
/ 19 сентября 2019

Я довольно новичок в git, поэтому я прошу прощения, если это простое решение.

Мне нужно переместить всю основную ветвь репо в ветвь функций.Сделано репо, затем кто-то использовал master в качестве первой ветки функций.Итак, теперь у меня есть:

A -- B -- C -- D (branch: master)

, и я хотел бы сделать это

  A--B--C--D (branch: new-feature)
 /
Z (branch: master)

, где Z представляет коммит, содержащий только файл .gitignore (или какой-то другой)инициализация репо "... я бы даже взял пустой коммит, не содержащий файлов, но я не думаю, что git любит / позволяет это).

Я понимаю, как перебазировать коммиты в ветвь, так что я понимаю, как это сделать:

     C--D (branch: new-feature)
    /
A--B (branch: master)

, но я не смог выяснить, как переназначить всех мастеров на ветвь функций.Я считаю, что суть проблемы, с которой я сталкиваюсь, заключается в том, что у меня нет коммита, на который можно указать мастер, поскольку нет коммита Z (коммит А имеет частичную реализацию, поэтому я не могу использовать А вместо Z)..

Заранее спасибо!

1 Ответ

3 голосов
/ 19 сентября 2019

Зачем перебирать?Просто объедините новую основную базу в новой подсказке.С проверкой master (чтобы обеспечить достойную отправную точку)

git checkout -B feature
git branch -f master   $(git commit-tree -m 'Initial commit.' `:|git mktree`)
git merge -s ours --allow-unrelated-histories   master

, производящей

A ... D---E     feature
         /
        Z       master

, и теперь история точно отражает то, что произошло, все работает.

Если вы действительно хотите выполнить перебазирование, , как указывает документ, есть опция --root :

git checkout -B feature
git branch -f master   $(git commit-tree -m 'Initial commit.' `:|git mktree`)
git rebase --root --onto master

, которая вызовет сердечную боль, если какие-либо ответвления прекратятсястарого master (нового feature) существует где угодно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...