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?
Antworten:
Änderungen zuerst ziehen:
quelle
git pull
? Die Fernbedienung ist gleichorigin
, läuft also tatsächlich :git pull origin
. Sollte es nicht alle Zweige aktualisieren?Fügen Sie --force zu Ihrer Befehlszeile hinzu, wenn Sie sicher sind, dass Sie pushen möchten. ZB verwenden
git push origin --force
(Ich empfehle die Befehlszeile, da Sie mit der Befehlszeile viel mehr Unterstützung von anderen Benutzern finden. Auch dies ist mit SmartGit möglicherweise nicht möglich.) Weitere Informationen finden Sie auf dieser Website: http://help.github.com/ Fernbedienungen /quelle
--force
wenn Sie der einzige sind, der diesen Zweig verwendet. Es gibt jedoch Probleme, wenn ein Zweig mit anderen Entwicklern geteilt wird.Führen Sie vor dem Drücken einen Git-Pull mit Rebase-Option durch. Dadurch werden die Änderungen, die Sie online vorgenommen haben (in Ihrem Ursprung), lokal angewendet und anschließend mit Ihren lokalen Änderungen versehen.
Jetzt können Sie auf Remote drücken
Weitere Informationen finden Sie unter Erläuterte Git-Rebase und Kapitel 3.6 Git-Verzweigung - Rebasing .
quelle
git pull --rebase
endet mitThere is no tracking information for the current branch. Please specify which branch you want to rebase against.
Ich habe den gleichen Fehler festgestellt , fügen Sie einfach "--force" zum Befehl hinzu, es funktioniert
quelle
--force
kann aber hilfreich sein.Ich hatte das gleiche Problem.
Der Grund war, dass meine lokale Niederlassung irgendwie die Verfolgung an das entfernte Gegenstück verloren hatte.
Nach dem
und die Verschmelzungskonflikte zu lösen, konnte ich pushen.
quelle
Sie können dem Befehl --force-with-lease hinzufügen , es funktioniert.
--force ist destruktiv, da es das Remote-Repository bedingungslos mit allem überschreibt, was Sie lokal haben. Aber - Force-with-Lease stellt sicher, dass Sie die Arbeit anderer nicht überschreiben.
Weitere Informationen finden Sie hier .
quelle
(Eine) Lösung für Netbeans 7.1: Versuchen Sie es mit einem Pull. Dies wird wahrscheinlich auch fehlschlagen. Schauen Sie sich jetzt die Protokolle an (sie werden normalerweise jetzt in der IDE angezeigt). Es gibt eine / mehrere Zeilen, die sagen:
"Pull fehlgeschlagen aufgrund dieser Datei:"
Durchsuchen 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. Alles sollte jetzt gut funktionieren.
quelle
Die Verwendung der
--rebase
Option hat bei mir funktioniert.git pull <remote> <branch> --rebase
Dann zum Repo drücken.
git push <remote> <branch>
Z.B
git pull origin master --rebase
git push origin master
quelle
Ich habe das gleiche Problem. Ich beschloss mit
quelle
checkout
überschreibt diese Änderungen oder nimmt sie zumindest nicht in Push auf.Das hat bei mir funktioniert. Es finden Sie in der Git-Dokumentation hier
Wenn Sie sich in Ihrer gewünschten Filiale befinden, können Sie dies tun:
quelle
Wenn Sie auf dasselbe Problem gestoßen sind, führen Sie die folgenden
git
Befehle aus , um es zu lösen .git pull {url} --rebase
git push --set-upstream {url} master
Sie müssen zuerst das Repository auf Github erstellt haben.
quelle
Manchmal löst sich der KOPF, während Sie an Ihrem Git ziehen. Sie können dies überprüfen, indem Sie den folgenden Befehl eingeben:
Es ist besser, in Ihre Filiale zu ziehen und einen neuen Zug von Ihrer jeweiligen Filiale zu nehmen.
quelle