#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
команды, но это будет иметь тот же эффект.