Git показывает различия даже после `push --force`? - PullRequest
2 голосов
/ 23 апреля 2019

Упрощение:

enter image description here

В моей ветке master я добавил мусор.
Затем я подтолкнул его к origin / master

Позже я обнаружил, что добавлять этот мусор было ошибкой. Я знаю, что могу / должен создать фиксацию возврата.

Но я не сделал. Я сделал git reset --hard

enter image description here

Но теперь я хочу, чтобы источник / мастер выглядели точно так же, как мой локальный.

Очевидно, что я не могу нажать, потому что git говорит мне pull до нажатия.

Так я и сделал push --force:

enter image description here

Но даже после этого sourcetree показывает, что они не совпадают:

enter image description here

Даже если я проверю изменения, я не вижу изменений:

enter image description here

Вопрос:

Если удаленный master и локальный master не имеют различий, почему sourcetree показывает мне pull?

enter image description here

Даже git status показывает, что я в порядке (без тяги):

enter image description here

Ответы [ 3 ]

1 голос
/ 23 апреля 2019

Иногда Sourcetree не синхронизируется с вашим локальным хранилищем.Когда это происходит, просто попросите Sourcetree обновить его представление с помощью F5 (Windows) или + R (macOS).

1 голос
/ 23 апреля 2019

SourceTree периодически проверяет состояние удаленного доступа.

Решение 1 : просто повторно откройте Sourcetree

Решение 2 : Инструменты> Параметры> Общее проверка удаленных устройств по умолчанию на обновления каждые X минут.Сделайте X к 1/2, чтобы увидеть изменение статуса быстрее.Как и на картинке, вы можете увидеть обновленный статус через 1 минуту.

change remote update time

Надеюсь, это поможет.

1 голос
/ 23 апреля 2019

Общий совет: всякий раз, когда GUI, который оборачивает программу или библиотеку CLI, кажется, ведет себя неправильно, хорошей идеей является проверка непосредственно с реальной программой или библиотекой CLI.


В этом случае запускается выборка:

git fetch origin

И затем проверка, на что указывают ветки:

git log master origin/master

Или, возможно:

git branch --all --verbose

Или даже:

git show master
git show origin/master

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

Даже если вы подтвердили, что SourceTree не открывает проблему при повторном ее открытии, я бы на всякий случай перепроверил Git напрямую.

...