Rollback git Master Repository und Branch Commits vom Rollback-Punkt aus

966
Whisperity

Ich habe ein Git-Repository eingerichtet. Dieses Repository hat fast 700 Commits, aber alle sind in der masterBranche. Ich möchte einen Ansatz verfolgen, bei dem ich diesen masterZweig zurückrolle (dieser Rollback umfasst etwa 50 Commits), um ihn an einem früheren Punkt zu behalten, und von diesem Punkt aus verzweigen Sie alle späteren Commits in einen separaten Zweig.

Grafische Erklärung

Aktuellen Zustand:

|-.---.---.---.---.---.---.---.---+ master aaa bbb ccc ddd eee fff ggg hhh HEAD 

Wunschzustand:

|-.---.---.--\-| master aaa bbb ccc \ \ \.---.---.---.---.---+ seperate-branch ddd eee fff ggg hhh HEAD 

Damit wird der masterZweig zum cccCommit zurückgerollt und jedes Commit von diesem Punkt ( dddund weiter) aus in einen seperate-branch.

Ich bin ziemlich neu bei Git, habe mich aber auf die Gesellenebene gebracht, dennoch liegt dieser fortgeschrittene Gebrauch ziemlich über meinem Kopf. Ich verwende Ubuntu 11.04 als mein System. Das Repository hat (außer lokal gespeichert) eine remoteEinstellung für GitHub (falls dies einen Unterschied machen soll).

1

1 Antwort auf die Frage

1
Peter van der Does

Sie müssen das Commit kennen, zu dem Sie einen Rollback ausführen möchten. Ich nenne es SHA1

git checkout -b seperate-branch git checkout master git reset SHA1 --hard 

Und du bist fertig.

Um es auf GitHub zu pushen, müssen Sie es tun

git push --force origin master