git rebase создает локально-удаленные разногласия - PullRequest
0 голосов
/ 02 июля 2019

Мое репо на GitHub.Я работал над mybranch, который вышел некоторое время назад master, и у обоих были новые коммиты

git checkout master
git checkout -b mybranch
...
git add ...
git commit
git push origin mybranch

====>

[master] -------commit0--
[mybranch]   \--commit1--

В этот момент я нажал commit1 на GitHub.

Я хотелчтобы проверить, работает ли commit1 под новым master, я сделал rebasecommit0 и commit1 нет конфликта).Насколько я понимаю, теперь это выглядит так:

git fetch --all
git checkout master
git rebase origin/master
git checkout mybranch
git rebase origin/master

======>

[master] -------commit0--------------
[mybranch]               \--commit1--

Все отлично работает, и я сделал новый прогресс commit2.

git checkout mybranch
...
git add ...
git commit
git push origin mybranch

=====>

[master] -------commit0--------------------------
[mybranch]               \--commit1-----commit2--

Я внес изменения в GitHub и был готов к извлечению-запрос.Однако теперь я вижу на GitHub, что у меня есть 3 коммита:

new to old:
- commit2
- commit0
- commit1

Это раздражает, потому что commit0 уже является частью мастера и не имеет ничего общего с mybranch.Изменение файла с commit0 также отображается в моем запросе на удаление, что нежелательно.Итак, я выполнил "естественную" вещь: revert commit0 в mybranch.

git checkout mybranch
git revert [commit0]
git push origin mybranch

Теперь запрос на получение выглядит лучше: он имеет только изменения от commit1 и commit2.

Однако в моем локальном репо, поскольку я revert ed commit0, у меня нет его содержимого на mybranch.git log показывает:

new to old:
- revertcommit0 (HEAD -> mybranch)
- commit2
- commit1
- commit0 (origin/master, origin/HEAD, master)
...

На этом этапе:

  • Что я должен сделать, чтобы устранить это несоответствие?Я бы хотел, чтобы новейшие master коммиты на mybranch, и только подталкивали соответствующие изменения к mybranch.Это требует слишком много?
  • Что я должен был сделать по-другому, чтобы избежать этого?merge может быть лучше практиковать?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...