2017-05-05 5 views
0

Ich habe eine Remote-Zweigstelle in mein lokales Repository integriert und 26 lokale Commits erstellt.Wie kann man letzte lokale Commits in Git rückgängig machen und in den Remote-Zustand zurückkehren?

Nun, ich möchte diese Zusammenführung wiederherstellen, aber es ist der Meinung, dass es ziemlich langweilig und fehleranfällig ist, die Commits 1 zu 1 rückgängig zu machen oder nach dem letzten Commit der Remote-Version zu suchen.

Ich ging durch die Post How to undo last commit(s) in Git?, die mit ihren Antworten sehr interessant ist, aber ich fand keine einfache Möglichkeit, meine lokale Rückstellung zu tun.

Kann jemand helfen?

Antwort

1

Verwenden Git Log & Git zurücksetzen

git log 

das Sie die ID mit Commit-Nachricht wird durch die Sie Ihre ID commit identifizieren können.

Verwenden Sie die Commit-ID, um dann zurückzusetzen.

git reset <commit-id> 

Wenn Sie dauerhaft zu diesem Commit zurückkehren möchten. Sie können Folgendes verwenden.

git reset --hard <commit-id> 
+0

Sie auf einem Zweig zurücksetzen tip, damit du 'git reset --hard origin/master' verwenden kannst, um zurück zu dem Master zu setzen, der bei deiner ursprünglichen Fernbedienung war, als du das letzte Mal mit dieser Fernbedienung gesprochen hast. –

+0

@ LasseV.Karlsen Es kann nicht angenommen werden, dass Ursprung/Master die gleiche Commit-ID haben, da das OP nicht erwähnt hat, dass Ursprung/Master und der lokale Zweig synchron waren. – harshitpthk

+0

ok, aber ich suchte nach einer Lösung, ohne die commid-IDs zu verwenden, und wenn ich ** in ** meinen lokalen Zweig einfüge, ist es mein Ziel, in den entfernten Zustand dieses exakten Zweigs zurückzukehren. Also danke @Lasse V. Karlsen @ "Lasse V. Karlsen" – geekobi

0

habe ich versucht, ein oder zwei Dinge und dies ist ein bisschen schmutzig, aber es ist einfach und scheint zu funktionieren:

  • Kasse zu einem anderen Zweig (erstellen, falls keines): git checkout -b tempo
  • die schlechte lokale Niederlassung entfernen: git checkout -b dirty_one origin/dirty_one
: git branch -D dirty_one
  • die lokale Niederlassung mit Fern eines synchronisiert neu

    und das ist alles.

    Die schmutzige Sache, die ich denke, ist, dass die schlechten lokalen Commits noch im lokalen Repo sind, aber der Zweig sie nicht kennt, also können sie verborgen bleiben.

    Wenn ich meine merge wiederholen (was ich in der Tat getan haben), die Zusammenführung nur gut funktionieren, aber ich weiß nicht genau, wie (das der schmutzigen Teil ...)

  • Verwandte Themen