Hier ist ein typischer Workflow für Github ...
Wie ein Projekt
->
gabelt es->
git clone https://github.com/you/someproject
.Offenes Projekt. Wie das, was Sie sehen, aber nehmen Sie einige Änderungen vor.
Nachdem Sie darauf geachtet haben, nur in a
feature-branch
(git checkout -b some-feature
) zu arbeiten, entscheiden Sie sich, eine Pull-Anfrage beimupstream
Betreuer zu stellen - nachdem Siefeature-branch
Ihre Github-Gabel gedrückt haben .Der Maintainer lehnt aus irgendeinem Grund die Zugkraft ab.
Zum Beispiel ... hier ist eine fehlgeschlagene Pull-Anfrage, die ich gesendet habe und die dem obigen Szenario entspricht. ..
Nun normalerweise , wenn der Maintainer HAD fusioniert den Zug ... der Workflow wäre einfach ... auf meinem lokalen Rechner, ich würde alle lokalen Änderungen daran setzen , was auch immer feature-branch
ich war zu der Zeit ... git fetch --all
, git checkout master
, git pull upstream --ff-only
. Dann spielen Sie meine Änderungen darüber hinaus nach Wunsch ab ...
ABER...
Was ist, wenn ich beschließe, dass Sie die Änderungen an meiner Gabel leider weiter bearbeiten möchten ... und dennoch in der Lage sein möchten, auftretende Änderungen zu verfolgen und zusammenzuführen upstream
? Normalerweise lösche ich den Feature-Zweig und mache mich auf den Weg. Wie können Sie einen master
Zweig pflegen , der stromaufwärts zusammengeführt werden kann, aber die Funktionen Ihrer Gabel beibehält, während Sie "permanent von den upstream
" getrennt sind HEAD
?
Antworten:
Unabhängig von der Verwendung Ihres Szenarios können Sie dies folgendermaßen tun:
Mit dieser Strategie sollte es funktionieren. Beachten Sie jedoch, dass jede Änderung, die Sie an einem benutzerdefinierten Feature-Zweig vornehmen, nicht in den Upstream-Master übernommen wird.
quelle