Ich arbeite in einem Team mit einigen Entwicklern, die git auf BitBucket verwenden. Wir arbeiten alle an einem dev
Zweig und drängen master
erst auf eine Veröffentlichung.
Einer der Entwickler hat einen falschen Code begangen, der versehentlich meinen eigenen überschrieben hat, und jetzt versuche ich, den richtigen Code zurück in das Repo zu schieben. Ich lese diesen Fehler seit einigen Tagen. Ich kann nicht mehr zum Repo wechseln, da der folgende Fehler angezeigt wird:
! [rejected] master -> dev (fetch first)
error: failed to push some refs to 'https://[email protected]/repo_user/repo_name.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Ich folge den Anweisungen und pull
erhalte dann einen Zusammenführungskonflikt. Nach der Eingabe einer Nachricht für den Zusammenführungskonflikt ist mein lokaler Code nun der falsche Code, den der andere Entwickler versehentlich hochgeladen hat (wie von der erwartet)pull
). Daher ersetze ich den falschen Code durch das Backup, das ich vor dem Festschreiben kopiert habe, und wenn ich erneut versuche, einen Push durchzuführen, wird der gleiche Fehler angezeigt.
Es ist wirklich frustrierend, ich möchte meinem Team wirklich helfen und einen Beitrag leisten, aber ich kann wegen dieses Fehlers nicht. Weiß jemand, wie man dieses Problem löst? Ich würde mich über jede Hilfe sehr freuen.
Dies sind die Befehle, die ich ausführe, um sie festzuschreiben, wenn sie jemandem helfen:
git pull remotename master:dev
git add --all
git commit -m "some message"
git pull remotename master:dev
git push remotename master:dev
Ich hätte gedacht, wenn ich diese Reihenfolge einhalten würde, würde ich keine Zusammenführungskonflikte erhalten. Ich schätze ich lag falsch. Danke noch einmal
Update: Ich sollte hinzufügen, dass ich einige Stunden bei Google und Stackoverflow gesucht und verschiedene Anweisungen befolgt habe, aber ich kann immer noch nicht push
zum dev
Zweig.
git pull --rebase
.Verwenden Sie diesen Befehl im Terminal
quelle
Es passiert, wenn wir versuchen, in das Remote-Repository zu pushen, aber eine neue Datei auf dem Remote-Repository erstellt haben, die beispielsweise noch nicht abgerufen wurde
Readme
. In diesem Fall, wie der Fehler sagtda wir in unserer lokalen Umgebung keine aktualisierte Fernbedienung genommen haben. Also zuerst von der Fernbedienung ziehen
Es aktualisiert Ihr lokales Repository und fügt eine neue
Readme
Datei hinzu. Dann Push aktualisierte Änderungen auf Remotequelle
git pull origin develop
in meiner lokalen Entwicklungsabteilung gearbeitet, aber jetzt, wogit pull
es für mich gut funktioniert, weiß ich nicht warum.git pull
reicht gerade ausDies geschieht normalerweise, wenn das Repo einige Elemente enthält, die lokal nicht vorhanden sind. Um unsere Änderungen zu pushen, müssen wir in diesem Fall die Remote-Änderungen integrieren und dann pushen.
Erstellen Sie also einen Pull von der Fernbedienung
Drücken Sie dann die Änderungen auf diese Fernbedienung
quelle
Zum Schieben zwingen
Git Push -f Ursprungsmaster
quelle
Ich habe es behoben, ich bin mir nicht ganz sicher, was ich getan habe. Ich habe versucht, einfach zu drücken und zu ziehen, indem ich:
git pull <remote> dev
anstattgit pull <remote> master:dev
Hoffe, das hilft jemandem, wenn er das gleiche Problem hat.
quelle
Sie müssen Folgendes eingeben:
Wenn Sie a verwenden
git push origin master --force
, haben Sie ein großes Problem.quelle
git fetch
undgit merge
manuell verwenden ?git pull
Sie können dies versuchen:
git pull origin master --rebase
quelle
Tatsächlich ist Github viel einfacher als wir denken und es passiert absolut immer dann, wenn wir versuchen zu pushen, selbst nachdem wir einige Dateien explizit in unser Git-Repository eingefügt haben. Um das Problem zu beheben, versuchen Sie es einfach.
: Git ziehen
und dann..
: Git Push
Hinweis: Wenn Sie nach dem Abrufen Ihres Repositorys versehentlich im VIM-Editor stecken geblieben sind, machen Sie sich keine Sorgen, schließen Sie einfach den VIM-Editor und versuchen Sie es mit Push :)
quelle
Ich habe unten Schritte gemacht. Endlich funktioniert es gut.
Schritte
1) git init
2) Git-Status (zur Überprüfung des Status)
3) git hinzufügen. (Fügen Sie die gesamte Änderungsdatei (.) hinzu.)
4) git commit -m
"<pass your comment>"
5) git remote add origin
"<pass your project clone url>"
6) Git Pull - Allow-Un-Related-Histories-
"<pass your project clone url>"
Master7) Git Push -u
"<pass your project clone url>"
Masterquelle
Ich hatte diesen Fehler und das lag daran, dass auf dem Server ein Update vorhanden war, SourceTree jedoch keine verfügbaren Updates anzeigte (möglicherweise, weil ich bei der letzten Überprüfung offline war). Also habe ich eine Aktualisierung im Quellbaum durchgeführt und jetzt werden 2 zu pushende Elemente anstelle von 1 Element angezeigt.
Drücken Sie also auf Aktualisieren oder ziehen, wenn dieser Fehler auftritt, und versuchen Sie es erneut.
quelle
Warnung git push -f Ursprungsmaster
quelle
Die beste Option für mich und es funktioniert und einfach
git pull --rebase
dann
git push
viel Glück
quelle
So habe ich dieses Problem gelöst:
git pull origin master
git push origin master
Dies geschieht normalerweise, wenn Ihr Remote-Zweig nicht aktualisiert wird. Und danach, wenn Sie eine Fehlermeldung wie "Bitte geben Sie eine Commit-Nachricht ein" erhalten, beziehen Sie sich darauf (Für mich hat die Antwort von xiaohu Wang funktioniert :))
quelle
Ich hatte zuerst ein SSDT VS-Projekt. Ich wollte das Projekt so wie ich es hatte zu Github bringen. Ich wollte, dass dieser Push die erste Version meines Repos ist, mit dem der Master-Zweig gestartet wird. Donals Vorschlag von git push -f origin master war der einfachste Weg (den ich gesehen habe), um dies zu erreichen. Da ich mir keine Sorgen machen musste, etwas neu zu schreiben, schien es sinnvoll zu sein.
quelle
Ich hatte das gleiche Problem. Es ist passiert, dass ich eine .Readme-Datei im Repository erstellt habe, ohne sie vorher abzurufen.
Möglicherweise möchten Sie die .Readme-Datei löschen oder vor dem Drücken abrufen.
quelle
Der Fehler tritt möglicherweise aufgrund der unterschiedlichen Struktur des Codes auf, den Sie festschreiben und der auf GitHub vorhanden ist. Sie können sich auf Folgendes beziehen: So gehen Sie mit dem Fehler " Weigern, nicht verwandte Historien zusammenzuführen " um:
quelle
Sie können verwenden
Dies hilft Ihnen, falls Sie einige Änderungen haben, die noch nicht in Ihrem lokalen Repo registriert sind. insbesondere
README.md
quelle