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?
Änderungen zuerst ziehen:
git pull Origin branch_name
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/
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 .
Ich habe den gleichen Fehler festgestellt, füge einfach "--force" zum Befehl hinzu, es funktioniert
git Push Origin master --force
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.
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 .
(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.
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
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
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.
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>