Как я могу увидеть представление Git-обновления без ускоренной перемотки вперед?

Я пытаюсь git push origin master и получить ошибку ! [rejected] master -> master (non-fast-forward), Я понимаю, что означает ошибка. (1)

Тем не менее, я хочу решить, стоит ли --force обновление в любом случае. Для этого мне нужно увидеть и сравнить коммиты моей локальной ветки и целевой удаленной ветки. Как я могу видеть их рядом? Я бы предпочел использовать инструмент с графическим интерфейсом, как gitg, но удобочитаемой опции командной строки будет достаточно.


(1) Это означает, что моя локальная ветвь не является прямым потомком целевой удаленной ветки. Это объясняется в:

1 ответ

Решение

Вы можете использовать следующие инструменты для визуализации и сравнения репозиториев:

git log --graph

Вы можете использовать командную строку git:

git log --graph --oneline --all --decorate

Со страницы руководства: "Нарисуйте текстовое графическое представление истории коммитов в левой части вывода. Это может привести к тому, что между коммитами будут напечатаны дополнительные линии, чтобы история графа отображалась правильно".

См. Просмотр истории коммитов для примера (вам придется немного прокрутить вниз).

gitk

Вы можете использовать графический интерфейс gitk:

git fetch origin # make sure you are up-to-date
gitk branchname origin/branchname # launch gitk

С помощью этой команды вы можете увидеть, как разошлись локальная и удаленная ветки.

Другие инструменты

Другие инструменты графического интерфейса могут иметь аналогичные параметры визуализации. См . Ответ Роба Мэйоффа на "Что означает, что Git-push не может быть быстро объединен?" для примера того, что вы можете увидеть.

Non-перемотка вперед

Все эти инструменты были упомянуты при изучении того, почему git pull обновляется, но git push отказывается от перемотки вперед в StackOverflow. Ответы включают советы по устранению не-перемотки вперед без форсирования. (Распространенной причиной является наличие локальной ветви с тем же именем, что и у удаленной - например, с именем локальной и удаленной ветви origin/new-feature вместо того, чтобы местное отделение назвали просто new-feature.)

Другие вопросы по тегам