Jestem dość nowy, git
ale obecnie używam go do zarządzania naszym kodem w środowisku zespołowym. Miałem kilka problemów z ponownym bazowaniem i naprawiłem je za pomocą
git checkout --ours filename.txt
git add filename.txt
git rebase --continue
Teraz chcę wypchnąć moje zmiany, więc uruchamiam następujące polecenie
$ git push origin feature/my_feature_branch
daje mi następujący błąd:
To ssh://[email protected]:7999/repo/myproject.git
! [rejected] feature/my_feature_branch -> feature/my_feature_branch (non-fast-forward)
error: failed to push some refs to 'ssh://[email protected]:7999/repo/myproject.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.
Co mogę zrobić, aby pozbyć się błędu?
PS: W --force
miarę możliwości unikam korzystania z tej opcji.
Odpowiedzi:
Wygląda na to, że ktoś wepchnął nowe zatwierdzenia między Twoim ostatnim
git fetch
agit push
. W takim przypadku musisz powtórzyć swoje kroki i ponownie bazowaćmy_feature_branch
.Po zakończeniu
git fetch
polecam zbadać sytuację zgitk --all
.źródło
Prawdopodobnie nie pobrałeś zdalnych zmian przed ponownym bazowaniem lub ktoś wprowadził nowe zmiany (podczas ponownego bazowania i próby wypychania). Spróbuj wykonać następujące czynności:
źródło
Miałem ten problem! Próbowałem: git fetch + git merge, ale nie rozwiązałem! Próbowałem: git pull, a także nie rozwiązałem
Następnie spróbowałem tego i rozwiązałem mój problem (jest podobny do odpowiedzi Inżyniera):
źródło
Miałem podobny problem i rozwiązałem go:
git pull origin
źródło
Spóźniłem się na imprezę, ale znalazłem kilka przydatnych instrukcji na stronie pomocy github i chciałem się nimi tutaj podzielić.
Czasami Git nie może dokonać zmiany w zdalnym repozytorium bez utraty zatwierdzeń. Kiedy tak się dzieje, twoje pchnięcie zostaje odrzucone.
Jeśli inna osoba przeszła do tej samej gałęzi co Ty, Git nie będzie w stanie przesłać Twoich zmian:
Możesz to naprawić, pobierając i scalając zmiany wprowadzone w zdalnej gałęzi ze zmianami, które wprowadziłeś lokalnie:
Lub możesz po prostu użyć
git pull
do wykonania obu poleceń naraz:źródło
spróbuj tego polecenia
$ git push -f -u origin <name of branch>
to znaczy
$ git push -f -u origin master
źródło
Blokada zapisu we współdzielonym repozytorium lokalnym
Miałem ten problem i żadna z powyższych rad mi nie pomogła. Udało mi się wszystko poprawnie pobrać. Ale push zawsze zawodził. Było to repozytorium lokalne zlokalizowane w katalogu Windows z kilkoma klientami pracującymi z nim poprzez sterownik folderu współdzielonego VMWare. Okazało się, że jeden z systemów zablokował repozytorium Git do zapisu. Po zatrzymaniu odpowiedniego systemu VMWare, co spowodowało blokadę, wszystko naprawiano natychmiast. Niemal niemożliwe było ustalenie, który system powoduje błąd, więc musiałem je po kolei zatrzymywać, aż się udało.
źródło
Cóż, skorzystałem z porady tutaj i wkręciło mnie to, ponieważ połączyło mój lokalny kod bezpośrednio z masterem. .... więc traktuj to wszystko z przymrużeniem oka. Mój współpracownik powiedział, że poniższe rozwiązania pomogły w rozwiązaniu problemu potrzebnego do zmiany oddziału.
źródło
W Eclipse wykonaj następujące czynności:
Repozytoria GIT> Piloty> Pochodzenie> Kliknij prawym przyciskiem myszy i powiedz pobieranie
Repozytoria GIT> Zdalne śledzenie> Wybierz oddział i powiedz scalaj
Przejdź do projektu, kliknij prawym przyciskiem myszy plik i powiedz Pobierz z nadrzędnego.
źródło
źródło
Oto inne rozwiązanie tego problemu
źródło
źródło