Jemand hat eine Reihe von Pull-Requests an mein Repository auf Github gesendet. Leider haben sie dies in mehreren Pull-Anforderungen (eine für jede Datei) getan, anstatt alle Pull-Anforderungen für alle Dateien auf einmal zu übermitteln.
Nachdem ich ihn gebeten habe, sie zu einer Einheit zusammenzuführen – und keine Antwort erhalten habe, versuche ich nun, diese Pull-Anforderungen selbst in der Git Bash zusammenzuführen – aber mit wenig Glück – bin ich ziemlich glücklich, die Merge-Schaltflächen zu verwenden und Commits durch die zu machen GitHub-Programm unter Windows, aber wenig mehr. Ich habe kein wirkliches Verständnis für die Git-Shell. Wenn also jemand den Prozess durchgehen könnte, wie ich diese Pull-Anforderungen zusammenführen kann (keine von ihnen widerspricht sich sowieso), wäre ich sehr dankbar.
Angenommen, Sie haben 3 Pull-Anforderungen A, B, C, die sich auf drei Zweigen bA, bB, bC befinden. und Ihr Hauptzweig ist master.
Holen Sie zuerst alle seine Zweige in Ihr lokales Repo, ohne es zusammenzuführen.
git fetch his-repo
Ihr Repo kann also jetzt vier Zweige haben: master, bA, bB, bC
Ich werde eine Verzweigung vom Master namens erstellen f-merge-his-repo
git checkout master
Dadurch wird sichergestellt, dass f-merge-his-repo von master abzweigt.
git checkout -b f-merge-his-repo
Dadurch wird der Zweig f-merge-his-repo erstellt und dorthin gewechselt.
Jetzt sind Sie also gerade auf f-merge-his-repo, verwenden Sie die folgenden Befehle:
git merge bA
git merge bB
git merge bC
Wenn es Konflikte gibt, sollten Sie es beheben (manuell oder mit einem Mergetool), aber wie Sie sagten, gibt es keine Konflikte, also sagen wir das bA bB and bC
sind jetzt alle drin f-merge-his-repo
dann einfach zusammenführen f-merge-his-repo
in Ihren Master-Zweig
Wechseln Sie zunächst in den Master-Branch.
git checkout master
Und dann f-merge-his-repo zusammenführen
git merge f-merge-his-repo
oder wenn Sie eine Zusammenführung ohne schnellen Vorlauf bevorzugen
git merge --no-ff f-merge-his-repo
Löschen Sie diese Zweige schließlich.
git branch -d bA
git branch -d bB
git branch -d bC
git branch -d f-merge-his-repo
Sollte man sich wirklich anschauen pro-git
hier. Es ist ein einfaches Buch, das Ihnen alles zeigt, was Sie mit Git in Ihrer täglichen Arbeit brauchen, und glauben Sie mir, sobald Sie sich an Git Bash gewöhnt haben, werden Sie alle diese Git-GUIs frustriert finden (außer das Ansehen des Protokolls, ich benutze Git zum Ansehen und analysieren Sie das Protokoll)
Letzter Tipp:
Eine gute Möglichkeit, sich zu erinnern git merge
und git rebase
ist wie
Merge führt einen anderen Zweig zusammen ZU Ihren aktuellen Zweig (natürlich können Sie beide Zweige benennen, aber die Standardsyntax ist, den Zweig mit Ihrem aktuellen Zweig zusammenzuführen)
Sie sollten also immer zum Hauptzweig wechseln und andere Zweige zusammenführen
git checkout master
git merge their-branch --no-ff
oder
git merge their-branch
Und Rebase rebasiert Ihren aktuellen Zweig AN eine andere Filiale (normalerweise die Hauptfiliale)
git checkout feature-branch
git rebase master