Перебазировать ветку, извлеченную из другой ветки, на мастер без перетаскивания коммитов первых веток - PullRequest
0 голосов
/ 15 октября 2018

Я борюсь с конкретной ситуацией, с которой я сталкиваюсь с git.

Короче, я пытаюсь перебазировать ветку (feature/tracking-refactor), которая была извлечена из другой ветки (feature/basic-tracking), которая былавыписан из origin/master.

После слияния feature/basic-training Я хотел бы перебазировать feature/tracking-refactor на мастер, не перетаскивая feature/basic-training, фиксируя на новый origin/master.

Ниже приведено более графическое представление моей ситуации.Скажите, что у меня есть граф журнала git, такой как следующий как отправная точка.

Previous git log

И, после того, как успешный запрос на получение слился feature/basic-trackingна мастер, я в настоящее время нахожусь в этой ситуации.

Current git log

Но, когда я пытаюсь перебазировать feature/tracking-refactor на мастер, чтобы иметь чистуюкак история журнала, я также перетаскиваю каждый коммит из feature/basic-tracking.Я хотел бы просто перебазировать feature/tracking-refactor коммиты, такие как те, что с (d0875g и ee68b9t) SHA.

Моя работа заключается в том, чтобы создать новую ветку из origin/master и выбрать каждый коммит изfeature/tracking-refactor филиал.Но я надеялся на более элегантную альтернативу.Спасибо!

1 Ответ

0 голосов
/ 16 октября 2018

git rebase --onto.Это может быть сложно: git rebase --onto target-branch discard-branch branch-to-rebase.Таким образом, discard-branch скажет rebase ревизиям, что не будет выполняться в операции rebase.В вашем случае это будет (если я правильно понял):

git rebase --onto origin/master feature/basic-training feature/tracking-refactor

На самом деле, , если функция / базовая подготовка уже объединена с origin / master , вы можете сделать:

git checkout feature/tracking-refactor
git rebase origin/master

Или

git rebase --onto origin/master origin/master feature/tracking-refactor

Надеюсь, это сработает.

...