Использование "git rebase into" для объединения двух ветвей? - PullRequest
0 голосов
/ 06 декабря 2018

Я сделал одну ветвь функций от мастера:

git checkout -b branch1
+ commits to this branch
git push

Позже кто-то другой сделал вторую ветку на GitHub, затем я взял эту ветку и отредактировал ее:

git checkout branch2
+ commits to this branch
git push

Iожидал, что мы получим branch2 в master, и что тогда я получу последний master (с branch2) в мой branch1.

Но теперь мне сказали, что они не хотят, чтобы branch2 в master сам по себе - ичто вместо этого я должен получить branch2 в моей branch1 и нажать branch2 как часть branch1, когда branch1 завершится.

Так что я пытаюсь получить branch2 в мою branch1.Я пытаюсь сделать следующее ...

git checkout branch1
git rebase --onto branch2
git log

... но журнал git показывает, что rebase получил исходную версию branch2, а не дополнительное изменение Branch2, которое я сделал.

Как можноЯ получаю всю текущую ветку 2 в мою ветку 1?

Если я использую git merge вместо git rebase, тогда это работает (т.е. получает все коммиты, которые были сделаны в branch2 ... и добавляет их в головуof branch1):

git checkout branch1
git merge branch2
git log

Я не понимаю, почему git rebase не получил все коммиты branch2, а только первый?

1 Ответ

0 голосов
/ 06 декабря 2018

Когда я перебрасываю одну ветку на другую, я всегда выполняю следующие шаги:

  1. git pull
  2. git checkout для ветви, которую нужно перебазировать
  3. git rebase -i origin / targetBranch

Если ваше локальное хранилище обновлено, проверьте, находятся ли ветви в одном месте с источником, или используйте префикс origin / в вашей команде rebase.

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