git status говорит, что обновлен с помощью remote, хотя это не так

У нас есть git-репозиторий, размещенный на общем сетевом диске, к которому имеют доступ несколько коллег. Я назову это "Центральный репозиторий". Сотрудники клонируют этот репозиторий на свои локальные машины, вносят изменения, а затем отправляют изменения обратно.

Мы заметили, что если кто-то вносит изменения в центральный репозиторий, локальные репозитории git другого сотрудника не указывают, что они не синхронизированы. git status говорит

On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean

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

Почему это происходит? Это потому, что центральное хранилище размещено на общем сетевом диске? А может быть, git по какой-то причине не может определить, не синхронизирован ли он? Использование графического интерфейса, такого как Git Tower, также не имеет значения. Даже нажатие кнопки "Обновить" в графическом интерфейсе не означает, что он не синхронизирован. Также локальная ветка master отслеживает origin/master,

Что-нибудь можно сделать, чтобы решить эту проблему?

1 ответ

Решение

Вы должны позвонить git fetch получать обновления из удаленного репо в локальное репо, но без изменения текущей позиции филиала. После этого git status покажет правильные результаты.

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