Github-Pull-Request zeigt zu viele Änderungen/Commits
Lesezeit: 4 Minuten
Evan Hobbs
Wir haben zwei Filialen: develop und master.
Aus irgendeinem Grund erstelle ich eine PR von develop –> master. Es zeigt eine ganze Liste früherer Commits und Änderungen, selbst wenn ich nur eine einzige Zeilenänderung vorgenommen habe develop.
Außerdem wird “Kann nicht automatisch zusammengeführt werden” angezeigt, wenn ich über die Befehlszeile zusammenführen kann develop hinein master ohne Probleme.
Irgendeine Idee, was los sein könnte? Vorher hat es bei uns problemlos funktioniert.
EDIT: So sieht es aus, wenn wir versuchen, zusammenzuführen develop zu master. Nur der letzte Commit ist neu. Die anderen wurden zuvor zusammengeführt:
Und die Ausgabe von git log --oneline --decorate --all --graph
Welche Änderungen sind in diesen zusätzlichen Commits enthalten? Sind sie nur Merge-Commits? Bitte poste die Ausgabe von git log --oneline master..develop. Ist auch evtl. von Interesse git log --oneline --decorate --all --graph.
– Scott Weldon
19. August 2016 um 23:23 Uhr
@ScottWeldon Hinzugefügt – lassen Sie mich wissen, wenn es noch etwas gibt, das hilfreich wäre.
– Evan Hobbs
22. August 2016 um 19:13 Uhr
@ScottWeldon ps hat ein Kopfgeld hinzugefügt
– Evan Hobbs
22. August 2016 um 19:14 Uhr
Bitte posten Sie Ihre Konsolenausgabe nicht als Bild, sondern kopieren/fügen Sie die Ausgabe ein und verwenden Sie die Codeformatierung von Markdown. (Das erste Bild ist wahrscheinlich in Ordnung, aber das zweite fügt dem Rohtext nichts hinzu.)
– Scott Weldon
22. August 2016 um 19:48 Uhr
@ScottWeldon Ich würde in diesem Fall anders argumentieren: Die Farben sowohl für Zweige als auch für dekorierte Refs sind hilfreich. Sie haben Recht, ich würde die Textform noch hinzufügen, aber in einem Pastebin-externen Link, um die Frage nicht zu sehr zu überladen.
– VonC
22. August 2016 um 19:51 Uhr
Niemi
Ihr Git-Protokoll zeigt, dass es viele Commits in der gibt develop Branche, die in der nicht vorhanden sind master Zweig. Die Pull-Anforderung zeigt korrekt eine Liste dieser Commits an, die in die zusammengeführt werden können master Zweig.
Um alle Commits aus dem aufzulisten develop Filiale, die nicht Teil der sind master branch können Sie den Befehl verwenden git log master..develop. Dies sollte mit der Liste übereinstimmen, die Sie in der Pull-Anforderung sehen.
Aus deinem Git-Log sieht es so aus develop wurde zusammengeführt master bisher. Aber da diese Merge-Commits nicht mehr in der master Branch, ist es möglich, dass jemand den Master-Branch auf einen früheren Zustand zurückgesetzt hat? Möglicherweise zum Zurücksetzen von Änderungen, wenn Sie eine Bereitstellung in einer Umgebung haben, die mit der synchronisiert ist master Zweig?
Lösung
Bekommen master synchron mit develop wieder:
Kasse develop und pull um sicherzustellen, dass der Zweig auf dem neuesten Stand ist
Machen Sie dasselbe mit master
Verschmelzen develop hinein master
Lösen Sie die Konflikte
Drück den master Zweig
Jetzt master wird synchron sein mit develop erneut und die Liste der Commits in develop das master fehlt sollte leer sein. Listen Sie diese Commits mit auf git log master..develop. Ihre nächste Pull-Anfrage enthält nur die Commits, die Sie nach dieser Zusammenführung durchführen.
Weitere Untersuchung
Wenn Sie weiter untersuchen möchten, wie Sie in diesen Zustand geraten sind, können Sie verwenden reflog um zu sehen, welche Änderungen vorgenommen wurden master Zweig. Zum Beispiel, wenn einer der neueren Commits in develop zuvor war Teil der master Zweig.
git reflog master
Wenn Sie dies tun möchten, können Sie dies tun, bevor Sie die Zweige zusammenführen, damit Sie sehen können, wie der Verlauf vor dem Fix aussah.
ManKuR
Ich bin mir nicht sicher, ob ich die Op richtig verstanden habe. Wie ich verstanden habe, haben Sie einen einzigen Commit in der developmentZweig, also hier ist mein Versuch. Ich denke über das Problem nach, dass Ihr Entwicklungszweig nicht mit dem Master synchronisiert ist
den Entwicklungszweig-Commit zurücksetzen, während die lokalen Änderungen beibehalten werden git reset –soft HEAD^ # Angenommen, der letzte Commit gehört Ihnen
An diesem Punkt bleiben Ihre lokalen Änderungen unverändert auf Ihrem Computer
Schieben Sie dies jetzt zu Git. Sie können an dieser Stelle versuchen, das Drücken zu erzwingen. Hier können Sie Hilfe in Anspruch nehmen Rollback eines entfernten Git-Repositorys
Speichern Sie die lokalen Änderungen, damit Sie diese Änderungen in Zukunft erhalten können: git stash
Zu diesem Zeitpunkt ist Ihr Entwicklungszweig sauber und weist keine lokalen Änderungen auf
Wechseln Sie nun zum Master-Zweig und aktualisieren Sie ihn mit Remote. Git-Checkout-Master & Git-Pull-Origin-Master
Wechseln Sie in den Entwicklungszweig und aktualisieren Sie ihn mit Remote. git checkout development & git pull origin development
verschmelzen Sie den Master damit. Git-Merge-Master
An diesem Punkt ist Ihr Entwicklungszweig mit dem Master synchronisiert, aber lokal
Schieben Sie den Entwicklungszweig auf den Remote-Server: git push origin developer
Jetzt können Sie zum Github gehen und die PR erhöhen und sehen, ob sich immer noch ein Unterschied zeigt. Es sollte keinen solchen Unterschied zeigen, wenn die obigen Schritte ohne Probleme funktionieren.
Nehmen Sie nun Ihre lokalen Änderungen zurück, die Sie in Schritt 2 gespeichert haben. Git Stash-Pop
Übertragen Sie es jetzt und schieben Sie es in den Entwicklungszweig und sehen Sie sich die PR an.
Wenn alles gut funktioniert, sollte es das richtige Diff anzeigen. git clean könnte auch nach Schritt #2 hilfreich sein.
11754200cookie-checkGithub-Pull-Request zeigt zu viele Änderungen/Commitsyes
Welche Änderungen sind in diesen zusätzlichen Commits enthalten? Sind sie nur Merge-Commits? Bitte poste die Ausgabe von
git log --oneline master..develop
. Ist auch evtl. von Interessegit log --oneline --decorate --all --graph
.– Scott Weldon
19. August 2016 um 23:23 Uhr
@ScottWeldon Hinzugefügt – lassen Sie mich wissen, wenn es noch etwas gibt, das hilfreich wäre.
– Evan Hobbs
22. August 2016 um 19:13 Uhr
@ScottWeldon ps hat ein Kopfgeld hinzugefügt
– Evan Hobbs
22. August 2016 um 19:14 Uhr
Bitte posten Sie Ihre Konsolenausgabe nicht als Bild, sondern kopieren/fügen Sie die Ausgabe ein und verwenden Sie die Codeformatierung von Markdown. (Das erste Bild ist wahrscheinlich in Ordnung, aber das zweite fügt dem Rohtext nichts hinzu.)
– Scott Weldon
22. August 2016 um 19:48 Uhr
@ScottWeldon Ich würde in diesem Fall anders argumentieren: Die Farben sowohl für Zweige als auch für dekorierte Refs sind hilfreich. Sie haben Recht, ich würde die Textform noch hinzufügen, aber in einem Pastebin-externen Link, um die Frage nicht zu sehr zu überladen.
– VonC
22. August 2016 um 19:51 Uhr