2013-06-03 13 views
10

Jestem całkiem nowy w git, a ja pracowałem przy małym pobocznym projekcie przez ostatnie 2 miesiące i bez problemów pchałem rzeczy na bitbucket. Kilka dni temu spakowałem swój folder projektu (ponieważ musiałem ponownie zainstalować system operacyjny Linux), a teraz rozpakowałem go po mojej ponownej instalacji systemu operacyjnego Linux.git odrzucony push non-fast-forward

Więc teraz ja poszedłem do mojego folderu projektu, prowadzonego szczęśliwie pracę i wreszcie zrobił:

git add -A && git commit -m "modified code" && git push origin master 

..which jest to, co zwykle robią ..

i uzyskać:

To https://[email protected]/johnsproject/proj.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to 'https://[email protected]/johnsproject/proj.git' 
hint: Updates were rejected because the tip of your current branch is behind 
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') 
hint: before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

Miałem rzucić okiem na kilka pytań SO, gdzie sugerują użycie flagi siły -f - ale nie jestem pewien, czy powinienem to robić.

p.s: Jestem na gałęzi głównej - która jest gałęzią only na moim repo.

Byłbym bardzo wdzięczny, gdyby ktoś mógł wskazać mi właściwy kierunek.

Dzięki.

+0

'Scal zdalne zmiany (np. 'Git pull') Wskazówka: przed ponownym naciśnięciem." Czy próbowałeś pociągnąć? – Bob

+0

Próbowałem tego, ale otrzymuję '* master gałęzi -> FETCH_HEAD Błąd 74f5f2e..06e5112 error: Twoje lokalne zmiany w następujących plikach zostaną nadpisane przez scalenie: Zatwierdź zmiany lub przechowuj je, zanim będziesz mógł scalić . " – JohnJ

+0

ok) następnie zatwierdzić zmiany i uruchomić' git pull' ponownie – Bob

Odpowiedz

14

Istnieją pewne zmiany w centralnym repozytorium, które należy wyciągnąć, zanim będzie można nacisnąć. Do

git add -A 
git commit -m "my local changes" 
git pull 

Rozwiąż wszelkie konflikty. Następnie zrobić

git push 

Ewentualnie, jeśli nie mają cenne modyfikacje lokalnie, można utworzyć nowy klon swojego repo i rozpocząć pracę stamtąd:

git clone https://[email protected]/johnsproject/proj.git new_repo_dir 
+0

Kiedy robię git pull, wydaje mi się, że otrzymuję '* branch master -> FETCH_HEAD Aktualizacja 74f5f2e..06e5112 error: Twoje lokalne zmiany w następujących plikach zostanie nadpisany przez scalenie: Zatwierdź zmiany lub przechowuj je, zanim będzie można scalić. " – JohnJ

+0

@JohnJ OK, postępuj zgodnie z instrukcjami. Najpierw zatwierdz lokalne modyfikacje. Następnie 'git pull' i rozwiąż wszelkie konflikty. –

8

Spróbuj zrobić

git pull origin master 
git add -A 
git commit -m "modified code" 
git push origin master 

Twoje lokalne repozytorium prawdopodobnie nie jest zsynchronizowane ze zdalnym repozytorium.

+0

próbując tego z egit - trochę koszmaru, ale zasadniczo ekran synchronizacji git Eclipse'a wyświetlał stare nieaktualne konflikty scalania. Musiałem zatrzymać się i ponownie uruchomić i nagle moje problemy zostały rozwiązane. FWIW. – Adam

4

Miałem ten sam problem. Naprawiłem przy użyciu polecenia git push -f, które wymusza aktualizację.

+0

Jeśli chodzi o to rozwiązanie, w przypadku nowych plików, które nie zostały pobrane lokalnie, proces ten usunie je. – zinon

+0

Niezbyt dobre rozwiązanie, jeśli nie jesteś pewien, co naciskasz. – skyrocker