414 Stimmen

GitHub Pull-Anforderung zeigt Commits, die bereits im Zielsegment-Zweig vorhanden sind

Ich versuche, ein Pull-Request auf GitHub zu einem Branch zu überprüfen, der nicht master ist. Der Zielbranch hinkte master hinterher und der Pull-Request zeigte Commits von master, also habe ich master gemerged und es auf GitHub gepusht, aber die Commits und die Änderungen für sie erscheinen immer noch im Pull-Request nach dem Aktualisieren. Ich habe mehrmals überprüft, dass der Branch auf GitHub die Commits von master hat. Warum erscheinen sie immer noch im Pull-Request?

Ich habe auch den Pull-Request lokal überprüft und es zeigt nur die nicht gemergten Commits.

3voto

Arun Sasi Punkte 196

Das Problem tritt für mich nicht mehr auf, seit ich folgendes vor dem Start einer neuen Änderung oder dem Erstellen eines Pull Requests durchgeführt habe.

git pull --rebase origin 

Dies stellt im Grunde sicher, dass die neuen Änderungen, die vom lokalen Repository hinzugefügt werden, oben auf dem stehen, was sich derzeit im Remote-Zweig befindet. Daher ist unser lokaler Zweig immer oben auf dem aktuellen Remote-Head und nur die neuen Commits sind im Pull Request enthalten.

2voto

shasi kanth Punkte 6787

Ein einfacher Weg, um dieses Problem zu lösen: Bearbeiten Sie manuell die Datei in Ihrem Zweig, die bereits im Zielzweig ist, mit demselben Code, der aus der Datei des Zielzweigs kopiert wurde, und speichern Sie sie. Es wird committed. Die PR würde nun automatisch mit dem neuen Commit aktualisiert, den Sie gemacht haben, und das Problem lösen.

1voto

Chanaka udaya Punkte 4624

Ich bin mir nicht genau sicher über die Theorie dahinter. Aber ich habe dies mehrmals bekommen und konnte dies durch folgendes beheben.

git pull --rebase

Dies wird die Änderungen von deinem originalen Repo Master Branch holen und zusammenführen (falls du darauf verwiesen hast).

Dann drückst du deine Änderungen gewaltsam auf dein Github geklontes Repository (Ziel)

git push -f origin master

Dies stellt sicher, dass dein Github-Klon und dein Eltern-Repo auf dem gleichen Github-Commit-Level sind und du keine unnötigen Änderungen über verschiedene Branches siehst.

1voto

Tambe Tabitha Punkte 31

Verwenden von git cherry-pick

Wenn der Rebase-Prozess für Sie zu verwirrend wird, wie es bei mir der Fall war, besteht eine weitere Option darin, git cherry-pick zu verwenden. Hier sind die Schritte:

  • Aktualisieren Sie Ihren lokalen Zielbranch mit git pull.
  • Wechseln Sie zum Branch, in dem Sie Änderungen vorgenommen haben, und kopieren Sie die Commit-IDs der Commits, die Sie übernehmen möchten. Wenn der Branch-Name verwirrend ist, führen Sie git checkout verwirrend und dann git log aus. Sie können mit den Pfeiltasten auf der Tastatur durch die git log-Ausgabe scrollen. Die Commit-IDs sind die langen Zahlen, die jeder Commit enthält.
  • Erstellen Sie einen neuen Branch von Ihrem Zielbranch (z.B. main) mit git checkout -b neuer-branch-name, wenn Sie sich auf dem Zielbranch befinden.
  • Auf dem neuen Branch führen Sie git cherry-pick commit-id aus, wobei commit-id die lange Nummer ist, die Sie aus git log kopiert haben und die den Commit identifiziert, den Sie übernehmen möchten. Sie können dies mehrmals durchführen, wobei Sie die ID jedes Mal ändern, um einen weiteren Commit zu erhalten.
  • Wenn Sie auf diesem neuen Branch, den Sie erstellt haben, git log ausführen, sehen Sie, dass nur die von Ihnen hinzugefügten Änderungen nach dem Head Ihres Zielbranchs vorhanden sind, wie erwartet.
  • Schließlich schieben Sie die Änderungen ins Remote-Repository mit git push origin neuer-branch-name und erstellen einen Pull-Request.

0voto

manojadams Punkte 2202

In meinem Fall lag es an dem neuesten Pull-Request im aktuellen Branch. Und keines der oben genannten Lösungen hat funktioniert.

Schritte, die ich befolgt habe:

  1. Also habe ich zu meinem früheren Commit gewechselt:

    git checkout sha

  2. Es erstellt einen abgehängten HEAD. Erstellen Sie also einen neuen Branch aus diesem Commit, indem Sie

    git branch neuer-branch

  3. Ich habe das in das Upstream-Repo geschoben:

    git push upstream neuer-branch

  4. Habe wieder einen PR von neuer-branch zu ziel-branch erstellt.

  5. Und es sollte dieses Mal die richtigen Änderungen zeigen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X