LINUX.ORG.RU

изменить порядок коммитов после rebase

 ,


0

1

помогите пожалуйста решить проблему

вот исходное состояние репозитория:

* a1e8bc5 2018-04-01 | 4 (HEAD -> master) [zlodiak]
* 45b3983 2018-04-01 | 3 [zlodiak]
| * 2f3bf2f 2018-04-01 | 4s (second) [zlodiak]
| * 87102a5 2018-04-01 | 3s [zlodiak]
|/  
* 41a912b 2018-04-01 | 2 [zlodiak]
* 3a0067f 2018-04-01 | 1 [zlodiak]
* d532d4a 2018-04-01 | 0 [zlodiak]

я хотел бы применить rebase и получить на выходе такую ветку:

0, 1, 2, 3, 4, 3s, 4s

для этого я, находясь в ветке master, выполняю

git rebase second

в результате, после разрешения конфликтов, получаю:

kalinin@lenovo /var/www/html/misc/tag2 $ git hist --all
* 52824af 2018-04-01 | 4 (HEAD -> master) [zlodiak]
* 15b6c8f 2018-04-01 | 3 [zlodiak]
* 2f3bf2f 2018-04-01 | 4s (second) [zlodiak]
* 87102a5 2018-04-01 | 3s [zlodiak]
* 41a912b 2018-04-01 | 2 [zlodiak]
* 3a0067f 2018-04-01 | 1 [zlodiak]
* d532d4a 2018-04-01 | 0 [zlodiak]

как видите, это не то, что я планировал получить. порядок коммитов не тот

я пробовал, находясь в ветке second, выполнять:

git rebase master

в этом случае я получал то, что планировал:

kalinin@lenovo /var/www/html/misc/tag $ git hist --all
* ce57e84 2018-04-01 | 4s (HEAD -> second) [zlodiak]
* b18869f 2018-04-01 | 3s [zlodiak]
* a1e8bc5 2018-04-01 | 4 (master) [zlodiak]
* 45b3983 2018-04-01 | 3 [zlodiak]
* 41a912b 2018-04-01 | 2 [zlodiak]
* 3a0067f 2018-04-01 | 1 [zlodiak]
* d532d4a 2018-04-01 | 0 [zlodiak]

но этот результат меня тоже не устраивал. потому что если переключиться на ветку master и пытаться её продолжать(делать коммиты), это эти коммиты не включают то, что сейчас есть в 4s


потому что если переключиться на ветку master и пытаться её продолжать(делать коммиты), это эти коммиты не включают то, что сейчас есть в 4s

git checkout master
git merge second

И разберитесь с git, чтобы такие вопросы не задавать. На таком простом уровне много времени не займёт: GitHowTo, Git Immersion.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

то есть вы предлагаете после rebase сделать fast-forward? а если между этими двумя операциями другой участник проекта добавит что-нибудь в репозиторий, то это не может повлиять на результат?

prozaik
() автор топика
Последнее исправление: prozaik (всего исправлений: 1)
Ответ на: комментарий от prozaik

Вероятность конфликта есть всегда, независимо от действий. Если push не пройдёт, можно будет ещё раз попробовать (вернуть мастер где он был и повторить rebase+merge).

xaizek ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.