Wie kann ich Cherry-Pick anweisen, eine Reihe von Commits auszuwählen?
Oder mit anderen Worten, wenden Sie den Unterschied zwischen zwei Commits auf den aktuellen Status des Repositorys an?
Folgendes funktioniert nicht (Cherry-Pick hat keine --squash-Option):
git cherry-pick --squash e064480..eab48b59c
Hinweis: Mein Anwendungsfall befindet sich in einem Teilbaumszenario - bevor jemand anfängt zu argumentieren, dass ich nicht quetschen sollte.
Das Folgende funktioniert, aber dann habe ich eine Reihe von separaten Commits. Ich kann sie anschließend manuell mit interaktivem Rebase quetschen.
git cherry-pick -X subtree=vendor/package e064480..eab48b59c
Gibt es eine Möglichkeit, das Quetschen als Teil des Kirschpflückens durchzuführen?
quelle
git cherry-pick --continue
), ist es wahrscheinlich am sichersten, den-n
in diesem Fall wegzulassen, damit Sie sich nach Abschluss der Vorgänge jeden ansehen können Individuelles Commit und Bestätigung, dass alles in Ordnung ist. Dann können Sie sie über eine interaktive Rebase quetschen.-n
Option (--no-commit
) ausgewählt und dann das erste Commit mitgit commit --amend --no-edit
bearbeitet (die Option ohne Bearbeitung verwendet die Festschreibungsnachricht des ersten Commits erneut und fordert nicht zur Eingabe von a auf) ein neues).folge von master => cherry wähle zwei Commits aus einem anderen Zweig
Git Checkout Master
Git Cherry-Pick: 1
Git Cherry-Pick: 2
git reset --soft HEAD ~ 2 (Anzahl der Cherry Pick Commits, dh 2)
git hinzufügen.
Git Commit
quelle
Eine nützliche Alternative
git cherry-pick -n
zu einigen Anwendungsfällen könnte seingit merge --squash
- beispielsweise, wenn Sie die Änderungen eines Feature-Zweigs über Ihrem Integrationszweig testen möchten, ohne sie neu zu gründen.Quelle: Was ist der Unterschied zwischen Git Merge - Quash und Git Cherry Pick?
quelle