Ich habe einige Commits, die ich nicht in meinem Projekt haben möchte, aber es gibt ein Commit basierend auf ihnen, das ich darin haben möchte. Dies ist mein GitHub "Network" Graph des Repository (ASCII, da ich immer noch keine Bilder posten kann):
%Vor%(- & gt; bedeutet eine Zusammenführung)
Ich möchte die Änderungen löschen, die in den beiden [·] Commits vorgenommen wurden, und die [*] auf dem obigen [_] basieren. Ich habe versucht, zu verschmelzen und Rebasing, aber sie wenden die Änderungen der unerwünschten Commits. Ist es möglich?
Tut mir leid, wenn ich nicht klar bin, Englisch ist nicht meine Muttersprache. Vielen Dank im Voraus.
Ich kann Ihnen zwei Möglichkeiten geben:
Interaktive Rebase ( git rebase -i
) stellt Ihnen eine Liste von Commits vor, die Bearbeitung dieser Liste ändert das Ergebnis der Operation; können Sie diese Commits für verschiedene Operationen neu anordnen, löschen oder markieren. In Ihrem Fall können Sie den Zweig [*]
in [_]
's referenzieren und die Zeilen unerwünschter Commits löschen.
Cherrypick können Sie die Änderungen eines einzelnen Commits auf einen anderen Zweig anwenden. In Ihrem Fall können Sie cherrypick commit [*]
in den Zweig [_]
einfach übernehmen.
Sie könnten Ihre _
und Cherry Pick auschecken der Code%. Wenn Sie das in einem separaten Zweig möchten, können Sie von *
abzweigen, bevor Sie dies tun.
Tags und Links git git-commit