Ich versuche gerade, eine Eigenschaft aus dem Stamm eines OSS-Projekts in eine Gabel zu pflücken. Beide Repositories verwenden git und ich habe den Stamm als Verzweigung in die Verzweigung importiert, damit es die Dinge schön und einfach macht.git-log mit einer "ODER" -Klausel - oder - wie git-log-Ausgaben zusammengeführt werden?
Der Ansatz, den ich nehme, ist zu versuchen, alle relevanten Commits von einem Zweig zum anderen zu pflücken, da es mir nicht möglich ist, gerade einen Merge zu machen: es gibt zu viele Dinge, die auseinander gegangen sind.
Um die Liste der Commits zu erzeugen, mit dem ich cherry-pick beginnen soll ich identifiziert habe zwei git-log
Befehle auszuführen:
git log --branch project-trunk **/*Foo*
Das soll mir das Protokoll für jede Datei geben, mit der Wort "Foo" drin auf der project-trunk
Niederlassung. Dies ist ein ziemlich guter Ausgangspunkt, aber ich habe festgestellt, dass es andere Commits gibt, die relevant sind: Zum Glück haben sie normalerweise eine identifizierende Arbeit im Commit-Protokoll. So finden diese verwende ich:
git log --branch project-trunk --grep Bar
Das gibt mir alle Logs auf dem Zweig project-trunk
, die die Arbeit „Bar“ enthalten.
Das Problem ist, dass ich wirklich eine Master-Liste brauche, chronologisch angeordnet, die die Vereinigung dieser beiden Befehle enthält. Ich habe das git rev-list
Handbuch gelesen, aber ich kann keine Weise sehen, was ich will.
Ist es möglich, zwei separate Bedingungen wie diese zu vereinbaren? Und wenn nicht, gibt es eine einfache Möglichkeit, die Ausgabe von zwei git-log
Befehlen chronologisch zu verknüpfen?