webentwicklung-frage-antwort-db.com.de

Git Push fehlgeschlagen, "Nicht-schnelle Vorwärtsaktualisierung wurde abgelehnt"

Ich habe meine GIT-Repositories über Git Online bearbeitet. Nachdem ich versucht hatte, meine lokalen Codeänderungen zu verschieben, wurde eine Fehlermeldung angezeigt: 

Git Push failed, To prevent from losing history, non-fast forward updates were rejected.

Wie kann ich das beheben?

94
Sarath

Änderungen zuerst ziehen:

git pull Origin branch_name
133
iafonov

Fügen Sie Ihrer Befehlszeile "--force" hinzu, wenn Sie sicher sind, dass Sie "Push" möchten. Z.B. Verwenden Sie git Push Origin --force (Ich empfehle die Befehlszeile, da andere Benutzer über die Befehlszeile viel mehr Unterstützung finden. Auch dies ist möglicherweise mit SmartGit nicht möglich.) Weitere Informationen finden Sie auf dieser Website: http: //help.github. de/fernbedienungen/

80
Matt

Bevor Sie drücken, machen Sie einen Git-Zug mit Option für die Rückunterstützung. Dadurch werden die Änderungen, die Sie online (in Origin) vorgenommen haben, übernommen, lokal angewendet und Ihre lokalen Änderungen hinzugefügt.

git pull --rebase

Jetzt können Sie zur Fernbedienung drücken

git Push 

Weitere Informationen finden Sie unter Git rebase erklärt und Kapitel 3.6 Git Branching - Rebasing .

20
satishgoda

Ich habe den gleichen Fehler festgestellt, füge einfach "--force" zum Befehl hinzu, es funktioniert

git Push Origin master --force
12
Wen Qi

Ich hatte das gleiche Problem. 
Der Grund war, dass meine örtliche Filiale das Tracking an das entfernte Gegenüber verloren hatte.

Nach dem

git branch branch_name --set-upstream-to=Origin/branch_name
git pull

und um die verschmelzenden Konflikte zu lösen, konnte ich pushen.

4
hardmooth

Sie können dem Befehl --force-with-lease hinzufügen. Es funktioniert.

git Push --force-with-lease

--force ist destruktiv, da das Remote-Repository unbedingt mit dem, was Sie lokal haben, uneingeschränkt überschrieben wird. --Force-with-lease sorgt jedoch dafür, dass Sie die Arbeit anderer nicht überschreiben.

Mehr Infos hier

3
igorjosesantos

(Eine) Lösung für Netbeans 7.1: Versuchen Sie es mit einem Zug. Das wird wahrscheinlich auch scheitern. Schauen Sie sich jetzt die Protokolle an (sie werden normalerweise jetzt in der IDE angezeigt). Es gibt eine/mehrere Zeile, die sagt:

"Pull fehlgeschlagen wegen dieser Datei:"

Suchen Sie diese Datei, löschen Sie sie (machen Sie vorher ein Backup). Normalerweise handelt es sich um eine .gitignore-Datei, sodass Sie keinen Code löschen. Wiederholen Sie den Push. Jetzt sollte alles gut funktionieren.

1
Sliq

Das hat bei mir funktioniert. Sie finden es in der Git-Dokumentation hier

Wenn Sie sich in Ihrer gewünschten Branche befinden, können Sie Folgendes tun:

git fetch Origin
# Fetches updates made to an online repository
git merge Origin YOUR_BRANCH_NAME
# Merges updates made online with your local work
0
CodeChops

Manchmal zieht sich der HEAD ab, während er von Ihrem Idioten zieht. Sie können dies überprüfen, indem Sie den Befehl eingeben: 

git branch 
  • (Kopf getrennt von 8790704)

    meister

    entwickeln

Es ist besser, zu Ihrem Zweig zu gehen und einen neuen Zug von Ihrem Zweig zu nehmen.

git checkout develop

git pull Origin develop

git Push Origin develop
0
Abhinav

Um dasselbe Problem zu beheben, führen Sie die folgenden git-Befehle aus.

  • git pull {url} --rebase
  • git Push --set-upstream {url} master

Sie müssen das Repository zuerst auf github erstellt haben.

0
blackFoxCoder

Ich habe das selbe Problem ... mit dem ich gelöst habe

git checkout <name branch>
git pull Origin <name branch>
git Push Origin <name branch>
0