Github "Updates wurden abgelehnt, weil die Fernbedienung Arbeit enthält, die Sie nicht haben"

176

Ich habe ein neues Repo erstellt, es geklont, Dateien zum Verzeichnis hinzugefügt, sie mit add -Afestgeschriebenen Änderungen hinzugefügt , und wenn ich versuche, mit zu pushen, git push <repo name> mastererhalte ich die Meldung "Updates wurden abgelehnt, weil die Fernbedienung Arbeit enthält, die Sie nicht haben".

Dies scheint nicht sinnvoll zu sein, da es sich um ein neues Repo handelt und nur eine Readme-Datei enthält.

nodwj
quelle

Antworten:

307

Dies geschieht, wenn Sie ein neues Github-Repo mit READMEund / oder LICENSEDatei initialisiert haben

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

Jetzt können Sie Ihr Repository auf Github verschieben. Grundsätzlich müssen Sie diese neuen initialisierten Dateien mit Ihrer Arbeit zusammenführen. git pullholt und verschmilzt für Sie. Sie können auch abrufen und zusammenführen, wenn dies zu Ihnen passt.

Palerdot
quelle
7
Ich habe ein YouTube-Video mit einer detaillierteren Erklärung und zwei vorgeschlagenen Möglichkeiten erstellt, um dieses Problem überhaupt zu vermeiden.
Kevin Markham
16
Für den Befehl zum Zusammenführen muss ich verwendengit pull origin master --allow-unrelated-histories
Luciano Marqueto
Ich werde "tödlich: weigere mich, nicht verwandte Geschichten zusammenzuführen"
Sergi
4
@ Sergi versuchengit pull origin master --allow-unrelated-histories
Palerdot
101

Der Fehler tritt möglicherweise aufgrund der unterschiedlichen Struktur des Codes auf, den Sie festschreiben und der auf GitHub vorhanden ist. Es entstehen Konflikte, die durch gelöst werden können

git pull

Zusammenführen von Konflikten zur Lösung:

git push

Wenn Sie bestätigen, dass Ihr neuer Code in Ordnung ist, können Sie Folgendes verwenden:

git push -f origin master

Wo -fsteht für "Force Commit".

Kartikey Kumar Srivastava
quelle
13
'git push -f origin master' -das hilft
Saurabh
4
git push -f überschreibt den Remote-Verlauf mit Ihrem lokalen Verlauf. Seien Sie vorsichtig, wenn Sie ihn verwenden. Besonders in öffentlichen Repositories.
Andre
updates-were-rejectedDies passiert auch, wenn Sie Änderungen am Github-Repo in der Fernbedienung vorgenommen haben, zum Beispiel: Einige Änderungen an der Readme-Datei mit Github-GUI vorgenommen haben. Wenn Sie dann versucht haben, Ihre neue Arbeit auf Github zu verschieben, wird diese Meldung angezeigt, die besagt, dass die Änderungen, die Sie in Remote vorgenommen haben, lokal jedoch nicht vorhanden sind.
Deke
13

Wenn dies Ihr erster Stoß ist

ändere einfach die

git push <repo name> master

ändere es so!

git push -f <repo name> master
Mahyar
quelle
1
Dadurch werden Dateien verworfen, wie sie ursprünglich im Ursprung erstellt wurden. Verwenden Sie lieber ein git pullVorher, um entfernte Dateien abzurufen und Ihr Commit dann zusammenzuführen. Genau wie die akzeptierte Antwort besagt
JayJay
@ jayjaybricksoft Vielen Dank für Ihren Kommentar. Es ist der erste Push, daher ist das Ersetzen der Ursprungsdateien in Ordnung.
Mahyar
2

Die gelieferten Antworten haben bei mir nicht funktioniert.

Ich hatte ein leeres Repo auf GitHub mit nur der LICENSE-Datei und einem einzigen lokalen Commit. Was funktionierte war:

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

Auch bevor mergeSie möchten:

$ git branch --set-upstream-to origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.
koral
quelle
0

Ich habe diese Schritte befolgt:

Ziehen Sie den Master:

git pull origin master

Dadurch wird Ihr lokales Repo mit dem Github-Repo synchronisiert. Fügen Sie Ihre neue Datei hinzu und dann:

git add .

Übernehmen Sie die Änderungen:

git commit -m "adding new file  Xyz"

Zum Schluss drücken Sie den Ursprungsmaster:

git push origin master

Aktualisieren Sie Ihr Github-Repo. Sie sehen die neu hinzugefügten Dateien.

Darshan Jain
quelle
0

Wenn Sie Visual S2019 verwenden, erstellen Sie einen neuen lokalen Zweig, wie im Folgenden gezeigt, und übertragen Sie die Änderungen auf das Repo VS2019 lokale Niederlassung

ptsivakumar
quelle