Ich erhalte diese Nachricht, während ich zum Github-Repository drücke. Können Sie mir Schritt für Schritt sagen, wie ich das Problem beheben soll? Ich habe nur einmal gedrückt und es war erfolgreich. Wenn ich jedoch ein Projekt aktualisiert und versucht habe, mein zweites Commit zu pushen, wird "Master abgelehnt, nicht schneller Vorlauf" angezeigt, und ich kann nicht pushen. Bitte erläutern Sie die Vorgehensweise.
88
Antworten:
Ich hatte das gleiche Problem und konnte es beheben. afk5min hatte recht, das Problem ist, dass sich der Zweig, aus dem Sie Code gezogen haben, seitdem im Remote-Repository geändert hat. Gemäß den Standard-Git-Praktiken ( http://git-scm.com/book/en/Git-Basics-Working-with-Remotes ) müssen Sie diese Änderungen (jetzt) im Remote-Repository vor Ihnen in Ihre lokalen Änderungen einbinden kann begehen. Dies ist sinnvoll. Dies zwingt Sie dazu, die Änderungen anderer zu übernehmen und in Ihren Code einzufügen, um sicherzustellen, dass Ihr Code weiterhin mit den anderen vorhandenen Änderungen funktioniert.
Wie auch immer, weiter zu den Stufen.
Konfigurieren Sie den 'Abruf', um den Zweig abzurufen, aus dem Sie ursprünglich gezogen haben.
Holen Sie sich den Remote-Zweig.
Führen Sie diesen Remote-Zweig mit Ihrem lokalen Zweig zusammen.
Übernehmen Sie die (Zusammenführungs-) Änderung in Ihrem lokalen Repo.
Schieben Sie das Wechselgeld auf das Remote-Repo.
Im Detail...
Öffnen Sie in Eclipse die Ansicht 'Git Repositories'.
Stellen Sie sicher, dass Sie Ihr lokales Repository sehen und das Remote-Repository als Unterordner sehen können. In meiner Version heißt es Fernbedienungen, und dann kann ich das Remote-Projekt darin sehen.
Suchen Sie nach dem grünen Pfeil, der nach links zeigt. Dies ist der Abrufpfeil. Klicken Sie mit der rechten Maustaste und wählen Sie "Configure Fetch".
Sie sollten den URI sehen und sicherstellen, dass er auf das Remote-Repository verweist.
Schauen Sie im Abschnitt Ref-Zuordnungen des Popups nach. Meins war leer. Dies gibt an, welche Remote-Referenzen Sie abrufen möchten. Klicken Sie auf "Hinzufügen".
Geben Sie den Zweignamen ein, den Sie aus dem Remote-Repository abrufen möchten. Meins war 'Meister' (übrigens wäre ein Dropdown hier großartig !!, für den Moment musst du es eingeben). Fahren Sie mit dem Popup fort und klicken Sie schließlich auf "Fertig stellen".
Klicken Sie auf "Speichern und abrufen". Dadurch wird diese Remote-Referenz abgerufen.
Suchen Sie im Ordner "Zweige" Ihres lokalen Repositorys. Sie sollten diesen Remote-Zweig jetzt im Remote-Ordner sehen. Wieder sehe ich "Meister".
Klicken Sie mit der rechten Maustaste auf den lokalen Zweig im Ordner "Lokal" von "Zweige", der den Namen "Master" trägt. Wählen Sie "Zusammenführen" und dann den Remote-Zweig mit dem Namen "Ursprung / Master".
Prozess durch die Zusammenführung.
Übernehmen Sie alle Änderungen in Ihr lokales Repository.
Übertragen Sie Ihre Änderungen in das Remote-Repository.
Gönnen Sie sich ein leckeres Getränk und gratulieren Sie sich. Nehmen Sie sich den Rest des Tages frei.
quelle
Merge
rechtenpush branch Master
In meinem Fall habe ich das
Force Update
Kontrollkästchen beim Drücken aktiviert. Es funktionierte wie ein Zauber.quelle
In der Zwischenzeit (während Sie Ihr Projekt aktualisiert haben) wurden andere Commits für den 'Master'-Zweig vorgenommen. Daher müssen Sie diese Änderungen zuerst abrufen, um Ihre Änderungen übernehmen zu können.
quelle
Anwendbar für Eclipse Luna + Eclipse Git 3.6.1
ICH,
Und ich habe dieses Problem mit EGit konfrontiert und hier ist, wie ich es behoben habe.
Ja, jemand hat die Änderungen festgeschrieben, bevor ich meine Änderungen festschreibe. Die Änderungen werden also abgelehnt. Nach diesem Fehler werden die Änderungen tatsächlich in das lokale Repository übernommen. Ich wollte nicht nur
Pull
die Änderungen, weil ich beibehalten wollte,linear history
wie in - In welchen Fällen könnte "Git Pull" schädlich sein?Also habe ich folgende Schritte ausgeführt
Projekt
Fetch from Upstream
- ruft Remote-Updates (Refs und Objekte) ab, aber lokal werden keine Updates vorgenommen. Weitere Informationen finden Sie unter Was ist der Unterschied zwischen "Git Pull" und "Git Fetch"?Rebase...
- diese öffnen ein Popup, klicken Sie aufPreserve merges during rebase
see warumWas genau macht Git „rebase --preserve-Merges“ tun (und warum)
Rebase button
conflict(s)
, fahren Sie mit Schritt 6 fort, andernfalls mit Schritt 11Rebase Result
Popup wird angezeigt. Klicken Sie einfach aufOK
file comparator
würde sich öffnen, müssen Sie ändernleft side file
.Git Staging
Ansichtstage the changes
. dhadd to index
Rebase
->Continue
. Wiederholen Sie 7 bis 10, bis alle Konflikte gelöst sind.History
Sicht, wählen Sie Ihre Zeile begehen und wählen SiePush Commit
Rebase Commits of local.......
Kontrollkästchen und klicken Sie auf Weiter. beziehen Sie sich auf warum - Git: Rebase von Upstream auf EntwicklungszweigFinish
Hinweis: Wenn Sie mehrere lokale Repository-Commits haben, müssen Sie diese in einem Commit quetschen, um mehrere Zusammenführungen zu vermeiden.
quelle
Konfigurieren Nachdem Sie den Code gedrückt haben , wenn Sie eine abgelehnte Nachricht erhalten, klicken Sie auf Konfigurieren und dann auf Spezifikation hinzufügen, wie in diesem Bild gezeigt
Dropdown und klicken Sie auf den Ref / Heads / Yourbranchname und klicken Sie erneut auf Add Spec
Stellen Sie sicher, dass Sie die Aktualisierung erzwingen auswählen
Speichern Sie den Code und senden Sie ihn an das Repo
quelle
Öffnen Sie die Git-Ansicht:
1- Wählen Sie Ihr Projekt aus und wählen Sie Zusammenführen. 2- Wählen Sie Remote Tracking. 3- Klicken Sie auf OK
Git führt den Remote-Zweig mit dem lokalen Repository zusammen
4- dann drücken
quelle
Dieser Fehler bedeutet, dass das Remote-Repository andere Commits hatte und vor Ihrer lokalen Zweigstelle auf und ab ging.
Ich versuche einen Git Pull zu machen, gefolgt von einem Git Push. Wenn es keine widersprüchlichen Änderungen gibt, ruft git pull den neuesten Code in meinen lokalen Zweig ab, während meine Änderungen intakt bleiben.
Dann schiebt ein Git-Push meine Änderungen in den Master-Zweig.
quelle
Ich habe festgestellt, dass Sie auf dem neuesten Commit des Git sein müssen. Dies sind also die folgenden Schritte: 1) Stellen Sie sicher, dass Sie nicht an denselben Dateien gearbeitet haben, da sonst ein DITY_WORK_TREE-Fehler auftritt. 2) Ziehen Sie die neuesten Änderungen. 3) Übernehmen Sie Ihre Updates.
Hoffe das hilft.
quelle
quelle