Odpowiedź jest, git każe ci najpierw pobrać.
Prawdopodobnie ktoś inny naciskał już na mastering, a twoje zatwierdzenie jest opóźnione. Dlatego musisz pobrać, scalić zestaw zmian, a następnie będziesz mógł ponownie naciskać.
Jeśli tego nie zrobisz (lub co gorsza, jeśli wymusisz to za pomocą --force
opcji), możesz zepsuć historię zmian.
EDYCJA: Bardziej szczegółowo omawiam ostatni punkt, ponieważ facet tutaj właśnie dał bardzo złą radę dotyczącą korzystania z --force
opcji.
Ponieważ git to DVCS, idealnie wielu innych programistów pracuje nad tym samym projektem co Ty, używając tego samego repozytorium (lub jego rozwidlenia). Jeśli wymusisz nadpisanie swoim zestawem zmian, twoje repozytorium będzie niezgodne z danymi innych osób, ponieważ „przepisałeś historię”. Sprawisz, że inni ludzie będą nieszczęśliwi, a repozytorium ucierpi. Prawdopodobnie kociak na świecie też będzie płakał.
TL; DR
- Jeśli chcesz rozwiązać, najpierw pobierz (a następnie scal).
- Jeśli chcesz się włamać, skorzystaj z
--force
opcji.
Jednak prosiłeś o to pierwsze. Postaw na 1) zawsze, nawet jeśli zawsze będziesz używać git samodzielnie, ponieważ jest to dobra praktyka.