Laden...

Github Repository mit VS auf ausgewählten Commit zurücksetzen

Erstellt von CoderboyPB vor 3 Jahren Letzter Beitrag vor 3 Jahren 611 Views
C
CoderboyPB Themenstarter:in
327 Beiträge seit 2008
vor 3 Jahren
Github Repository mit VS auf ausgewählten Commit zurücksetzen

Ich möchte nun nichts weiter, als das Repository auf den Stand des markierten Commits zurück zu setzen.

Anschließend erhalte ich im Team Explorer die Optionen:

Wiederherstellen

Zurücksetzen

  • Zurücksetzen und Änderungen beibehalten
  • Zurücksetzen und Änderungen löschen

Irgendwie steige ich da nicht durch, denn irgendwie bekomme ich immer abweichende Ergebnisse, so erhalte ich Änderungen, die erst später erfolgten, die aber zu diesem Zeitpunkt zu Fehlern führen.

Wie also mache ich es richtig. Noch mal, ich will im Grunde genommen ne 'Zeitreise' zurück zum 21.09. 2020 machen.

Vielen Dank schon mal 😃

16.835 Beiträge seit 2008
vor 3 Jahren

Den exakten Wunsch "Ich will zum 21.9 erfüllen" gibt es so in Git nicht.

Es gibt

  • "Ich will zu Commit Id XXX springen und alle Änderungen verwerfen" (git reset --hard)
  • "Ich will zu Commit Id XXX springen und alle Änderungen beibehalten" (git reset --mixed)
  • "Ich will zu Commit Id XXX springen und die Historie danach vergessen*" (git revert)

Es gibt dann noch reset --soft, aber nicht über die VS UI.
Du musst git zwingend mitteilen, was mit den Änderungen passieren soll - und an Deinem Text kann ich nun auch nicht erkennen, was Du mit den Änderungen machen willst 😉

*dabei muss man sagen:

  • git reset springt tatsächlich zu einem alten commit
  • git revert holt sich den Zustand der entsprechenden Commit Id und erzeugt damit einen neuen Commit. So hast Du zwar den alten Zustand; die Änderungen gehen aber nicht verloren (bleiben über die Commit in der Hostorie erhalten).

Was Du mit

so erhalte ich Änderungen, die erst später erfolgten, die aber zu diesem Zeitpunkt zu Fehlern führen.

meinst weiß ich nicht wirklich.
Ich kann das von Dir beschrieben Verhalten nicht nachvollziehen. Zumindest bei mir funktionieren Revert und Reset wie beschrieben, wenn ichs denn mal brauche.

Man sieht aber an Deinem Git-Verhalten, dass Du immer gegen den master-Branch arbeitest; Git also eher als eine Art Backupsystem nutzt.

Git verfolgt aber eher die Idee von Branches; Du also Zeugs erstmal in einem extra Branch entwickelst und erst wenn die abgeschlossene Aufgabe ist das Zeug zurück in den master Branch überführst.
Dadurch vermeidest Du im Prinzip auch Deine genannten "Zeitreisen" - und Du kannst an mehreren Dingen gleichzeitig arbeiten, sodass Du auch nicht in irgendwelche komischen Zustande durch ein soft reset kommst.

Das ganze nennt sich Features Branches - und der am meisten verbreitete Flow dafür ist der GitHub Flow.