Jeśli to nie rozwiąże Twojego problemu, upewnij się, że pchasz do tej samej gałęzi, nad którą aktualnie pracujesz. Sprawdź, w której gałęzi jesteś ze statusem git.
afilina
1
To polecenie zadziałało, ale chciałbym wiedzieć, dlaczego nie git pull:? Pilot jest równa origin, więc to rzeczywiście działa: git pull origin. Czy nie powinien zaktualizować wszystkich oddziałów?
Karlen Kishmiryan
83
Dodaj --force do swojego wiersza poleceń, jeśli jesteś pewien, że chcesz wcisnąć. Np. Użyj git push origin --force(polecam linię poleceń, ponieważ znajdziesz znacznie więcej wsparcia od innych użytkowników z linią poleceń. Również może to nie być możliwe w przypadku SmartGit.) Więcej informacji znajdziesz na tej stronie: http://help.github.com/ piloty /
- siła rozwiąże twoje problemy, ale potencjalnie zaszkodzi innym. Powinien być używany tylko z dużą ostrożnością (i wiedzą)
schoetbi
7
-1, ponieważ generalnie wymuszanie pchnięć jest okropnym pomysłem.
joshin4colours
6
+1, ponieważ 5 osób zgodziło się z @ joshin4colours dać -1. Ale podczas gdy pchanie siłowe nie zawsze jest najlepszym pomysłem (co git wyjaśnia całkiem jasno, zaprzeczając twojemu pchnięciu), gdyby był to zły pomysł w 100% przypadków, opcja nie istniałaby. Sugestia Matta z pewnością może być przydatna dla innych.
user1271772
2
--forceJeśli jesteś jedyną osobą korzystającą z tej gałęzi, możesz skorzystać z niej . Jednak powoduje problemy podczas udostępniania gałęzi innym programistom.
Robert Brisita
22
Przed wypchnięciem wykonaj polecenie git pull z opcją rebase. Spowoduje to pobranie zmian, które wprowadziłeś online (w swoim źródle) i zastosowanie ich lokalnie, a następnie dodanie lokalnych zmian.
W moim przypadku git pull --rebasekończy sięThere is no tracking information for the current branch. Please specify which branch you want to rebase against.
trejder
17
Napotkałem ten sam błąd, po prostu dodaj „--force” do polecenia, działa
Miałem dziwną sytuację, w której właśnie to chciałem zrobić ... zdmuchnąć zawartość właśnie utworzonej zdalnej gałęzi master za pomocą czegoś nowego. To rozwiązało mój problem. Chociaż nie jest to rozwiązanie dla wszystkich, --forcemoże być pomocne.
Brad
1
Nie sądzę, aby ta odpowiedź zasługiwała na głosowanie negatywne 6 razy. Jest to poprawne rozwiązanie podanego problemu, jednak autor mógł być nieco bardziej opisowy, jeśli chodzi o okoliczności, w których to polecenie byłoby przydatne. Jeśli warto o tym wspomnieć, bo warto było pisać (funkcjonalność dla --force)
Aiden Strydom
5
Miałem ten sam problem.
Powodem było to, że mój lokalny oddział w jakiś sposób stracił śledzenie do zdalnego odpowiednika.
Wygląda na to, że przegapiłeś zmiany w oddziale zdalnym
ozma
5
Możesz dodać --force-with-lease do polecenia, będzie działać.
git push --force-with-lease
--force jest destrukcyjny, ponieważ bezwarunkowo nadpisuje zdalne repozytorium tym, co masz lokalnie. Ale --force-with-lease zapewnia, że nie nadpisujesz pracy innych osób.
(Jedno) rozwiązanie dla Netbeans 7.1: Spróbuj wyciągnąć. To prawdopodobnie również się nie powiedzie. Teraz spójrz na dzienniki (zwykle są one teraz wyświetlane w IDE). Jest jeden lub więcej wersów:
„Pobieranie nie powiodło się z powodu tego pliku:”
Przeszukaj ten plik, usuń go (wcześniej wykonaj kopię zapasową). Zwykle jest to plik .gitignore, więc nie usuniesz kodu. Ponów pchnięcie. Teraz wszystko powinno działać dobrze.
Odpowiedzi:
Najpierw ściągnij zmiany:
źródło
git pull
:? Pilot jest równaorigin
, więc to rzeczywiście działa:git pull origin
. Czy nie powinien zaktualizować wszystkich oddziałów?Dodaj --force do swojego wiersza poleceń, jeśli jesteś pewien, że chcesz wcisnąć. Np. Użyj
git push origin --force
(polecam linię poleceń, ponieważ znajdziesz znacznie więcej wsparcia od innych użytkowników z linią poleceń. Również może to nie być możliwe w przypadku SmartGit.) Więcej informacji znajdziesz na tej stronie: http://help.github.com/ piloty /źródło
--force
Jeśli jesteś jedyną osobą korzystającą z tej gałęzi, możesz skorzystać z niej . Jednak powoduje problemy podczas udostępniania gałęzi innym programistom.Przed wypchnięciem wykonaj polecenie git pull z opcją rebase. Spowoduje to pobranie zmian, które wprowadziłeś online (w swoim źródle) i zastosowanie ich lokalnie, a następnie dodanie lokalnych zmian.
Teraz możesz przejść do zdalnego
Aby uzyskać więcej informacji, zapoznaj się z omówieniem rebase Git i rozdziałem 3.6 Rozgałęzienie Git - Rebasing .
źródło
git pull --rebase
kończy sięThere is no tracking information for the current branch. Please specify which branch you want to rebase against.
Napotkałem ten sam błąd, po prostu dodaj „--force” do polecenia, działa
źródło
--force
może być pomocne.Miałem ten sam problem.
Powodem było to, że mój lokalny oddział w jakiś sposób stracił śledzenie do zdalnego odpowiednika.
Po
i rozwiązując łączące się konflikty, mogłem naciskać.
źródło
Możesz dodać --force-with-lease do polecenia, będzie działać.
--force jest destrukcyjny, ponieważ bezwarunkowo nadpisuje zdalne repozytorium tym, co masz lokalnie. Ale --force-with-lease zapewnia, że nie nadpisujesz pracy innych osób.
Zobacz więcej informacji tutaj .
źródło
(Jedno) rozwiązanie dla Netbeans 7.1: Spróbuj wyciągnąć. To prawdopodobnie również się nie powiedzie. Teraz spójrz na dzienniki (zwykle są one teraz wyświetlane w IDE). Jest jeden lub więcej wersów:
„Pobieranie nie powiodło się z powodu tego pliku:”
Przeszukaj ten plik, usuń go (wcześniej wykonaj kopię zapasową). Zwykle jest to plik .gitignore, więc nie usuniesz kodu. Ponów pchnięcie. Teraz wszystko powinno działać dobrze.
źródło
Korzystanie z
--rebase
opcji zadziałało dla mnie.git pull <remote> <branch> --rebase
Następnie przejdź do repozytorium.
git push <remote> <branch>
Na przykład
git pull origin master --rebase
git push origin master
źródło
Mam ten sam problem. Rozwiązałem z
źródło
checkout
nadpisze te zmiany lub przynajmniej nie uwzględni ich w trybie push.To właśnie zadziałało dla mnie. Można go znaleźć w dokumentacji git tutaj
Jeśli jesteś w wybranym oddziale, możesz to zrobić:
źródło
Napotkał ten sam problem, aby go rozwiązać, uruchom następujące
git
polecenia.git pull {url} --rebase
git push --set-upstream {url} master
Najpierw musisz utworzyć repozytorium na githubie.
źródło
Czasami, gdy pociągasz za tyłek, GŁOWA odłącza się. Możesz to sprawdzić wpisując polecenie:
Lepiej jest przenieść się do swojej gałęzi i ponownie wyciągnąć rękę z odpowiedniego oddziału.
źródło