Löschen aller commits in einem branch nach bestimmten commit

Ich bin eine schwierige Zeit greifen, wie ich verwenden können, Stellungswechsel/zurücksetzen, um dies zu erreichen.

War ich arbeiten, mein master Zweig, und nach einer gewissen Begehen, meine software funktioniert nicht mehr. Ich Sie nicht verlieren wollte, die änderungen zu der Zeit und ich wurde unter Druck gesetzt, auf Zeit zu erreichen, ein Meilenstein also ging ich wieder ein paar commits mit git checkout und erstellt einen neuen Zweig namens working und begann drängen alle meine änderungen dort. Später erkannte ich, dass diese änderungen (auf der master Zweig) wurden nicht benötigt. Jetzt will ich zurück zu meinem master-branch löschen Sie alle änderungen nach dem commit, die ich verwendet, um meine working Zweig und dann fahren meine working Zweig zu master Zweig.

Ich habe ein Bild erstellt mit einem online-Foto-editor, um zu versuchen und zu erklären, was ich versuche zu tun. Ich hoffe, es hilft:

Löschen aller commits in einem branch nach bestimmten commit

Ich will, dass alles nach 5cb967f. alles loswerden zwischen 5cb967f und a0c1de2 (nicht einschließlich dieser)

  • Sind die nicht benötigten commits auf dem master noch nicht publiziert oder Sie sind nur in Ihrem privaten repo?
  • Sie sind veröffentlicht. Ich habe nichts dagegen, die Geschichte umzuschreiben. Der Letzte commit in meinem working Zweig ist, was ich von nun an. Ich werde nicht checkout-ing in verpflichtet sich vor 5cb967f
  • Sind Sie der einzige, der mit dieser Arbeit oder haben andere Menschen wahrscheinlich zog begeht, die Sie löschen möchten?
  • andere Leute haben gezogen, aber es ist okay. Ich bin der Hauptentwickler. Wenn Sie erhebliche Probleme ich haben werde Sie das Projekt löschen und ein neues erstellen und Klonen Sie das neue repository.
  • Ihre text-markup nicht mit der Grafik -- das markup, sagt a0c1de2 und c460070 sind sowohl auf dem master branch, mit a3cb01e als der master-Tipp, die Grafik nicht zeigen, ein Zweig Begehen übergeordnet aus jedem commit auf, was Sie beschreiben, wie der master-Zweig und nicht show-master selbst als auch a0cde2. Niemand antwortete, für eine Geschichte, passend zu Ihrem text-Beschreibung, so dass ich fügte hinzu, ein auf der Grundlage, dass, aber es wäre einfacher, sicher zu sein, wenn man zeigen könnte, die Ergebnisse der git show-branch master working es wäre viel klarer, was hier vorgeht.
InformationsquelleAutor Xecure | 2012-12-07
Schreibe einen Kommentar