#git #atlassian-sourcetree
#git #atlassian-исходное дерево #atlassian-sourcetree
Вопрос:
Упрощение :
В моей master
ветке я добавил немного мусора.
Затем я отправил его в origin / master
Позже я обнаружил, что добавление этого мусора было ошибкой. Я знаю, что могу / должен создать фиксацию возврата.
Но я этого не сделал. Я сделал git reset --hard
Но теперь я хочу, чтобы источник / мастер выглядел точно так же, как мой локальный.
Очевидно, я не могу нажать, потому что git говорит мне pull
перед нажатием.
Так я и сделал push --force
:
Но даже после этого sourcetree показывает, что они не совпадают :
Хотя, если я проверю наличие изменений, я не вижу никаких изменений :
Вопрос:
Если удаленный master
и локальный master
не имеют различий, почему sourcetree показывает мне pull
?
Даже git status
показывает, что я в порядке (без вытягивания) :
Комментарии:
1. Возможно, это проблема с sourcetree. Вы можете снова открыть sourcetree и проверить.
2. @действительно неизданный. Повторно открыть — решаемая проблема. пожалуйста, опубликуйте это как ответ, чтобы это могло быть полезно другим.
3. Нет необходимости закрывать и повторно открывать, просто обновите с помощью
F5
или⌘
R
.4. Версия SourceTree для Windows отстой (на Mac она работает так, как должна). В Windows я использую и рекомендую
Git Extentions
.
Ответ №1:
SourceTree периодически проверяет статус удаленного.
Решение 1: просто снова откройте Sourcetree
Решение 2: Инструменты> Параметры> Общие проверяйте удаленные устройства по умолчанию на наличие обновлений каждые X минут. Сделайте X равным 1/2, чтобы быстрее увидеть изменение статуса. Как и на изображении, вы можете увидеть обновленный статус через 1 минуту.
Надеюсь, это поможет.
Ответ №2:
Общий совет: всякий раз, когда графический интерфейс, который обертывает программу или библиотеку CLI, кажется, ведет себя неправильно, рекомендуется проверять непосредственно с помощью реальной программы или библиотеки CLI.
В этом случае выполняется выборка:
git fetch origin
А затем проверяет, где ветви указывают на использование:
git log master origin/master
Или, возможно:
git branch --all --verbose
Или даже:
git show master
git show origin/master
позволяет проверить, на какой коммит (хэш) на самом деле указывают ветви, и, следовательно, подтвердить (или нет), есть ли проблема в графическом интерфейсе.
Даже если вы подтвердите, что SourceTree не показывает проблему при ее повторном открытии, я бы на всякий случай перепроверил с помощью Git напрямую.
Ответ №3:
Иногда Sourcetree не синхронизируется с вашим локальным репозиторием. Когда это произойдет, просто скажите Sourcetree обновить его представление с помощью F5 (Windows) или ⌘ R (macOS).