Ich kann keine richtige Git-Pull-Anfrage ausführen

587
renyhp

Ich bin neu bei GitHub und deshalb habe ich mich sehr damit beschäftigt, also brauche ich Schritt für Schritt Hilfe. Tut mir leid, dass ich ärgerlich bin: / Bevor ich irgendetwas sage, muss ich klarstellen, dass ich nur GitHub verwendet habe, weil ich auf Git Bash gestoßen bin.

Antefact: Ich habe ein Repo gegabelt, ein paar Commits ausgeführt und eine Pull-Anfrage gesendet. Es gab jedoch einige Konflikte. Ich kontaktierte den Programmierer und er sagte, er werde meine Pull-Anfrage später zusammenführen.

Nun musste ich noch ein paar andere Commits machen, aber inzwischen wurde das ursprüngliche Repo mit 30+ Commits aktualisiert. Ich wusste nicht, wie man eine neue aktualisierte Abzweigung erstellt, also habe ich ein neues Repo erstellt, dort manuell sein aktualisiertes Repo hochgeladen und meine Verpflichtungen übernommen. Offensichtlich kann ich jetzt keine Pull-Anfrage machen, da git nicht erkennt, was zu vergleichen ist.

Nun, was ich verlange, ist nur diese Pull-Anfrage erledigen zu können. Ich bin auch bereit, meine Commits für eine neue Gabel / Zweig zu wiederholen, falls mir jemand helfen kann. Bei Bedarf kann ich natürlich auch Git Bash verwenden, aber ich brauche wirklich eine Schritt-für-Schritt-Hilfe, weil ich etwas im Internet lese, aber jeder Befehl, den ich startete, passte nicht zu dem, was ich las. Natürlich kann ich mein erstes Repo nicht löschen, da die Zusammenführung noch nicht erfolgt ist.

0

2 Antworten auf die Frage

0
João Quintas

Für den Moment scheint es die beste Option zu sein, auch wenn dies insgesamt eine sehr schlechte Praxis ist. Sie würde die Dateien aus Ihrem neuen Repository in das gegabelte verschieben und die Pull-Anforderung erneut ausgeben (wobei alle Dateien mit den aktualisierten überschrieben werden).

Bevor Sie dies tun, sollten Sie in Betracht ziehen, Änderungen zu übernehmen oder sicherzustellen, dass Ihr lokales Repository mit dem ursprünglichen verzweigten Repository auf dem neuesten Stand ist.

Diese könnten für die Zukunft nützlich sein: https://services.github.com/kit/downloads/github-git-cheat-sheet.pdf https://www.git-tower.com/learn/cheat-sheets/git

0
larkey

Es wurde bereits eine Antwort gepostet, aber um zu verhindern, dass sich so etwas erneut haplening macht:

GitHub ist nur ein Git-Host von vielen und funktioniert wie jeder andere (GitLab, Gogs, ...).

Aus dem Weg heraus empfehle ich, Git zu lernen (und nicht "GitHub lernen"). Git ist ein wirklich schöner SCM, aber er ist nicht trivial. Ich persönlich empfehle immer "Think Like A Git", imho die beste Einführung.

Wenn Sie ein Repo klonen, machen Sie tatsächlich viele Dinge:

  • Initialisieren Sie ein neues lokales Git-Repo
  • Fügen Sie die entfernte URL (URL) hinzu, von der Sie klonen
  • Holen Sie sich die Daten (die Commits)
  • Testen Sie einen Zweig (oft als Master bezeichnet, aber das ist nur eine Konvention) mit derselben Festschreibungshistorie wie der entsprechende Zweig auf der Fernbedienung

Wenn Sie ein Repo erstellen, kopieren Sie die gegabelte Fernbedienung in einen neuen Namespace unter Ihrem Konto. Sie können jetzt Ihr Repo klonen, für das Sie Schreibrechte haben.

Nun möchten Sie Pull-Anfragen machen. Eine Pull-Anforderung an GitHub (es ist eine GitHub-spezifische Funktion, obwohl andere Server häufig ähnliche Funktionen implementieren) funktioniert so, dass Sie eine Quell-Remote / Branch-Kombination und ein Ziel-Remote / Branch angeben.

Aus diesem Grund wird es als guter Stil angesehen, einen neuen Zweig in Ihrem Repo zu erstellen, in den Zweige des tatsächlichen Zweigs, in den Sie später zusammenführen möchten, und der nur für die Pull-Anforderung festgeschrieben wird. Ich benutze oft ein Namensschema wie "PRQ_myfeature".

Mit dieser Methode können Sie Ihren Master-Zweig immer noch den Master-Zweig der Originalfernbedienung "verfolgen" lassen. Verwenden Sie dazu "$ git remote add some_fancy_name URL". Sie können jetzt den ursprünglichen Master abrufen und in Ihren ziehen, um die Änderungen zu verfolgen.

Auf diese Weise können Sie auch Ihren Pull-Request-Zweig regelmäßig neu stützen und auf Konflikte prüfen.

Das bedeutet, dass der Autor Ihre Pull-Anfrage einfach ohne Probleme zusammenführen kann, was die Wahrscheinlichkeit erhöht, dass sie dies tun wird.