Использовал слияние git -продолжить вместо перебазирования git -продолжить

#git #github

#git #github

Вопрос:

На github я вижу коммиты из главной ветки в своей ветке после rebase , когда я хочу видеть только разницу, как обычно. Я помню, что, вероятно, я использовал git merge --continue вместо git rebase --continue при разрешении конфликтов. Возможно ли, что это проблема?

Комментарии:

1. Я имею в виду… Является ли эта ошибка причиной проблемы?

2. Вы имеете в виду, что когда вы делаете это git log в своей feature ветке, вы также видите коммиты, которые также из master ? Итак, вы хотите видеть коммиты только из своей feature ветки?

3. @mnestorov Я имею в виду, что я вижу коммиты от master вместе с коммитами из моей ветки функций, а не сначала коммиты от master, а затем мои коммиты

Ответ №1:

Нет: git merge --continue сначала проверяется, что слияние приостановлено для завершения.1 Если он есть, он буквально просто запускается git commit на данный момент.2 Если нет, это говорит о том, что слияние не завершено, и ничего не делает.

Обратите внимание, что git rebase на самом деле нужно скопировать некоторый набор существующих коммитов в новые и улучшенные версии этих коммитов. Процесс копирования очень похож на выполнение серии git cherry-pick команд. В зависимости от того, как вы вызываете git rebase , вы могли бы указать ему копировать коммиты, которые также видны при использовании имени master для поиска коммитов. В вашем вопросе недостаточно информации, чтобы определить, так ли это.


1Это может быть результатом только:

  • выполняется git merge --no-commit , или
  • запуск git merge , который приводит к конфликтам.

Перебазирование (или выбор вишни или возврат), которое приводит к конфликтам, не считается приостановленным слиянием, даже если оно использует механизм слияния Git.

2Будущая версия git merge --continue может вызывать тот же код, что и git commit без выполнения отдельной git commit команды, но это будет иметь тот же эффект.