Github „Aktualizacje zostały odrzucone, ponieważ pilot zawiera pracę, której nie masz”

176

Utworzyłem nowe repozytorium, sklonowałem je, dodałem pliki do katalogu, dodałem je add -A, zatwierdziłem zmiany, a kiedy próbuję wypchnąć za pomocą git push <repo name> master, otrzymuję komunikat „Odrzucono aktualizacje, ponieważ pilot zawiera pracę, której nie masz”.

Wydaje się, że nie ma to sensu, ponieważ jest to nowe repozytorium i zawiera tylko plik readme.

nodwj
źródło

Odpowiedzi:

308

Dzieje się tak, jeśli zainicjowałeś nowe repozytorium github za pomocą READMEi / lub LICENSEpliku

git remote add origin [//your github url]

//pull those changes

git pull origin master 

// or optionally, 'git pull origin master --allow-unrelated-histories' if you have initialized repo in github and also committed locally

//now, push your work to your new repo

git push origin master

Teraz będziesz mógł przenieść swoje repozytorium na github. Zasadniczo musisz scalić te nowe zainicjowane pliki ze swoją pracą. git pullpobiera i łączy dla Ciebie. Możesz także pobierać i scalać, jeśli Ci odpowiada.

palerdot
źródło
7
Stworzyłem film na YouTube z bardziej szczegółowym wyjaśnieniem i dwoma sugerowanymi sposobami uniknięcia tego problemu w pierwszej kolejności.
Kevin Markham
16
Do polecenia scalenia potrzebujęgit pull origin master --allow-unrelated-histories
Luciano Marqueto
Dostaję „fatalny: odmowa połączenia niepowiązanych historii”
Sergi
4
@Sergi trygit pull origin master --allow-unrelated-histories
palerdot
101

Błąd prawdopodobnie wynika z innej struktury kodu, który zatwierdzasz i który jest obecny na GitHub. Tworzy konflikty, które można rozwiązać

git pull

Rozwiązywanie konfliktów scalania:

git push

Jeśli potwierdzisz, że nowy kod jest w porządku, możesz użyć:

git push -f origin master

Gdzie -foznacza „wymuszone zatwierdzenie”.

Kartikey Kumar Srivastava
źródło
13
„git push -f origin master” - to pomaga
Saurabh
4
git push -f nadpisuje zdalną historię twoją lokalną historią, zachowaj ostrożność podczas jej używania. Szczególnie w repozytoriach publicznych.
Andre
updates-were-rejectedzdarza się również, jeśli dokonałeś zmian w repozytorium github w pilocie, na przykład: dokonałeś pewnych zmian w pliku readme za pomocą github gui. A potem próbowałeś wypchnąć twoją nową pracę na github, pokaże tę wiadomość mówiącą, że zmiany, które wprowadziłeś zdalnie, ale nie są obecne lokalnie.
Deke
13

Jeśli to twój pierwszy krok

po prostu zmień

git push <repo name> master

zmień to w ten sposób!

git push -f <repo name> master
Mahyar
źródło
1
Spowoduje to odrzucenie plików, które zostały pierwotnie utworzone w źródle. Raczej użyj git pullprzed, aby pobrać zdalne pliki i scalić wtedy swoje zatwierdzenie. Tak jak
podano
@jayjaybricksoft Dziękujemy za komentarz. Jest to pierwsze naciśnięcie, więc zastąpienie plików źródłowych jest w porządku.
Mahyar,
7

Możesz odnieść się do: Jak radzić sobie z błędem „ odmowy scalania niepowiązanych historii ”:

$ git pull --allow-unrelated-histories
$ git push -f origin master

Chetabahana
źródło
2

Podane odpowiedzi nie zadziałały dla mnie.

Miałem puste repozytorium na GitHubie z tylko plikiem LICENCJA i pojedynczym zatwierdzeniem lokalnym. Co zadziałało, to:

$ git fetch
$ git merge --allow-unrelated-histories
Merge made by the 'recursive' strategy.
 LICENSE | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 LICENSE

Zanim mergeteż zechcesz:

$ git branch --set-upstream-to origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.
koral
źródło
0

Wykonałem następujące kroki:

Pociągnij mistrza:

git pull origin master

Spowoduje to zsynchronizowanie lokalnego repozytorium z repozytorium Github. Dodaj nowy plik, a następnie:

git add .

Zatwierdź zmiany:

git commit -m "adding new file  Xyz"

Na koniec wypchnij wzorzec pochodzenia:

git push origin master

Odśwież swoje repozytorium Github, zobaczysz nowo dodane pliki.

Darshan Jain
źródło
0

Jeśli korzystasz z programu Visual S2019, utwórz nową gałąź lokalną, jak pokazano na poniższym rysunku, a następnie prześlij zmiany do repozytorium Oddział lokalny VS2019

ptsivakumar
źródło