В локальной версии не актуальные файлы или плохой merge.
Также рядом есть важные изменения которые нужно положить на remote.
При такой ситуации git иногда может попросить reset --hard
- Добавляем в commit только нужные файлы и проводим push
- Если в коммите уже есть ненужные нам файлы обходим это с помощью Commit-only-one-dir-when-all-files-staged
- Делаем git fetch.
git fetch --all
*- Эта команда скачивает последние изменения с remote без попыток merge или rebase чеголибо*
3. Делаем git reset.
git reset --hard origin/master
*- Эта команда сбрасывает master ветку к тому состоянию которое мы только что получили средствами fetch*
**Осторожно! Этот способ перетрет все локальные файлы ветки и удалить файлы невходящие в последний commit на remote**