Git: Почему я вижу ранее зафиксированные изменения? - PullRequest
1 голос
/ 02 апреля 2011

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

Я вижу, что изменения, которые нужно зафиксировать, старые и не отражают мой фактический статус локального репозитория (тот, который нажал -f).Итак, если я делаю git commit на основном, он работает нормально, но два репозитория различаются.

Ситуация не разрешена, так как новый стандартный git push показывает ошибку:

 ! [rejected]        master -> master (non-fast-forward)

Как это можно решить, чтобы в моих основных репозиториях было то же содержимое, что и в моей локальной копии?

1 Ответ

2 голосов
/ 02 апреля 2011

Как правило, вы не должны делать git push для не пустого хранилища, то есть хранилища, к которому прикреплена рабочая копия. Причина в том, что git push не обновляет рабочий каталог (он не может надежно это сделать), и поэтому либо HEAD не синхронизируется с его веткой, либо не синхронизируется с его рабочей копией.

Если вы хотите перейти в какой-либо репозиторий, пусть это будет пустой репозиторий без рабочей копии. В противном случае используйте fetch и pull, чтобы получить изменения в вашем хранилище (используется в самом хранилище).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...