Git rebase с определенных коммитов - PullRequest
3 голосов
/ 01 октября 2019

Это действительно трудно понять Git rebase для начинающих. Я всегда получаю странный результат, когда я rebase. Я обнаружил, что могу использовать --onto, чтобы контролировать, куда мне следует перейти, но как я могу контролировать сторону from?

Например:

enter image description here

Допустим, я сейчас на ветке 2, число представляет время выполнения коммита, а красный цвет - мои коммиты на ветке 2, которые еще не находятся в master. Если я хочу, чтобы моя ветка 2 стала ниже, какую команду я должен использовать?

1) 1 -> 2 -> 8 -> 3 -> 5 -> 6 -> 7

2) 1 -> 2 -> 8 -> 5 -> 6 -> 7

Вначале я думал, что это невозможно, потому что мой коммит 3 пропадет, но я прочитал его изСайт Git, это действительно допустимо.

enter image description here

3) 1 -> 2 -> 3 -> 5 -> 6 -> 8 -> 7

Могу ли я сделать это? В основном, чтобы перебазировать только коммит 7 на вершину мастера?

Причина, по которой они спрашивают это потому, что auto rebase всегда вызывает у меня головную боль, поэтому я предпочитаю указывать, я хочу перебазировать fromкоторые передают onto которые передают. Могу ли я сделать это? Но я не могу найти параметр from.

1 Ответ

2 голосов
/ 01 октября 2019

Первый случай:

git checkout branch2
git rebase máster

Второй случай:

git rebase --onto master branch2~3 branch2 #rebase branch2 but skipping revision 3

Третий случай:

git checkout branch2~
git cherry-pick master #pick revision 8
git cherry-pick branch2 # pick revision 7
# if you like the result
git branch -f branch2
git checkout branch2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...