Wie kann ich Commits in Git überspringen?

8

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.

    
vguzmanp 12.04.2012, 17:13
quelle

3 Antworten

10

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.

  • Mit
  • 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.

KurzedMetal 12.04.2012, 17:32
quelle
2

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.

    
vhallac 12.04.2012 17:30
quelle
1

Sie können Ihre Commits kombinieren, indem Sie diejenigen, die Sie nicht benötigen, erneut aufstellen und zerquetschen. Vielleicht hast du nicht Squash und Pick.

Beweisen Sie dies: Ссылка

    
Yogesh 12.04.2012 17:22
quelle

Tags und Links