dani

Alternative zu git cherry-pick?

Hallo zusammen,
ich habe ein Fork eines GitHub Repository erstellt. Der Branch heißt "main". Innerhalb des Forks habe ich mir einen neuen Branch mit dem Namen "test" angelegt.

In regelmäßigen Abständen wird der Branch "main" in meinem Fork mit dem Originalen abgeglichen. Nun möchte ich aber nicht jeden Commit von "main" in "test" übernehmen.

Bisher habe ich dies mit Hilfe von git cherry-pick umgesetzt. Was mir an der Lösung nicht gefällt ist, dass der neue Commit im Branch "test" eine neuen SHA erhält. Was natürlich logisch ist.

Ist euch ein Weg bekannt, damit ich nach wie vor nur einzelne Commits von "main" in "test" übernehmen kann, dabei aber originale SHA beibehalten wird?


Gruß,
Dani
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 672539

Url: https://administrator.de/forum/alternative-zu-git-cherry-pick-672539.html

Ausgedruckt am: 10.05.2025 um 12:05 Uhr

godlie
godlie 19.04.2025 um 12:10:06 Uhr
Goto Top
Hallo,

da dürfte dir Git Squash helfen, aber bedenke die Historie geht verloren dabei.

https://www.freecodecamp.org/news/git-squash-commits/

grüße
Dani
Dani 20.04.2025 um 10:25:23 Uhr
Goto Top
Moin @godlie,
Danke für deine Antwort.

Ich habe mir git squash angeschaut und auch ein paar Versuche durchgeführt. Hab es aber nicht geschafft, dass ich von mir definierte Commit(s) übernehmen konnte. Ich habe bei meinen Tests immer temporär ein weiteren Branch "temp" auf Basis von "main" erstellt. Denn der Branch "main" in meinem Fork soll immer dem Original entsprechen.

Annahme:
  • Es gibt ein Repository "test1" auf Github mit einem Brach mit dem Namen "main".
  • Darin gibt es über 3.000 Commits. Welche natürlich wöchentlich steigt.
  • Da mich das Projekt interessiert habe ich einen Fork für den Branch "main" erzeugt.
  • Im Fork ein weiteren Branch "test" erstellt. Welcher zu dem Zeitpunkt identisch ist mit dem Branch "main".
  • Das Branch "main" in meinem Fork halte ich mit einer GitHub Action synchron mit dem Repository "test1".
  • Der Sync hat heute Nacht zwei Commits (Commit1, Commit2) gefunden und in den Branch "main" übernommen.

Nun möchte ich nur Commit2 in den Branch "test" übernehmen, mit dem gleichen SHA. Commit1 soll nicht übernommen werden.


Gruß,
Dani