Kopieren Sie Ihren Commit (oder Satz von Commits) zu einem neuen Commit (oder Satz von Commits), der nach dem letzten Commit der anderen Person kommt.
Dies ist ein wenig verwirrend, daher könnte es hilfreich sein, hier drei Namen zu haben. Sie haben Ihre eigenen Commits, die wir für Viet mit V
beschriften könnten. Es sind (mindestens) zwei weitere Personen beteiligt: Ihr Arbeitgeber E
und Ihr vorgelagerter U
.
Ihr Upstream war die neueste:
...--E--F--G--H--I <-- master (in U)
Sie geklont ihre Repository, alle Commits bekommen, fügte dann selbst:
...--E--F--G--H--I <-- upstream/master (in V)
\
J--K--L <-- master (in V)
Inzwischen Ihr Arbeitgeber ist hinter:
...--E--F--G <-- master (in E)
Wenn Sie eine Pull-Anfrage machen, Ihre Anfrage sagt "nehmen commits durch L
". Für Mr. U, das sind Ihre drei Commits, J--K--L
, weil sein master
bei I
endet. Für Herrn E sind das jedoch Ihre drei Verpflichtungen plus die von Herrn U.
Also, wenn Sie sich jetzt Ihre ursprünglichen Commits Commits kopieren, die nach G
kommen:
J'--K'--L' <-- anotherbranch (in V)
/
...--E--F--G--H--I <-- upstream/master (in V)
\
J--K--L <-- master (in V)
Sie können nun, Herr E, eine Anforderung senden, die er L'
begehen ziehen. Da seine Commit-Zeichenkette beim Commit G
endet, sendet er ihm J'
, K'
und .
Herr E wird wahrscheinlich wahrscheinlich aktualisieren, um U
zu entsprechen.Wenn er das tut, muss er sich entscheiden, was er mit der Tatsache anfangen soll, dass er mit sowohlJ'--K'--L'
als auchJ--K--L
endet. Sie müssen auch entscheiden, ob Sie beide Kopien Ihrer Commits behalten wollen.
Hinweis: Sie können diesen git cherry-pick
mit Kopiervorgang begehen tun (was recht einfach ist), oder mit git rebase
(der cherry-pick mit einer letzten git reset
am Ende einen Zweignamen zu bewegen, eine Art automatisiert ist um das Original zugunsten der neuen Kopien zu "vergessen". Der Cherry-Pick ist konzeptuell einfacher, und da diese spezielle Operation rückwärts läuft (backporting), würde ich persönlich hier bleiben, wenn nicht andere (unvorhergesehene/nicht offenbarte) Überlegungen dies außer Kraft setzen.
Schätzen Sie die Erklärungen :) Viel einfacher zu verstehen, jetzt –