[git] einige Versionen zurückspringen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
MoonKid
Beiträge: 513
Registriert: 12.03.2012 22:36:43

[git] einige Versionen zurückspringen

Beitrag von MoonKid » 07.03.2014 16:55:23

X-Post

Zur Vorgeschichte muss ich sagen, dass ich biserh mit svn und cvs mit Hilfe des grandiosen TortaisSVN/CVS Clients gearbeitet habe. Da muss man nicht viel denken. ;)

Mit dem git-Konzept komme ich noch nicht klar. Ich nutze es im Testbetrieb ohne Server und mit QGit als Oberfläche.

QGit zeigt mir bisher die meisten Informationen im Vergleich zu anderen Oberflächen an. Dennoch sehe ich keine konkrete Möglichkeit "frühere Versionen auszuchecken".

Ich möchte z.B. drei Versionen zurückspringen, ohne die nachfolgenden Versionen dabei zu verlieren. Wahlweise möchte ich die "nachfolgenden Versionen" auch killen und die Version, auf welche ich zurückgesprungen bin, als die aktuelle letzte Version behandeln. Wie ist das machbar? Was sieht git hier als Konzept vor?

Benutzeravatar
TRex
Moderator
Beiträge: 8320
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: [git] einige Versionen zurückspringen

Beitrag von TRex » 07.03.2014 21:03:09

gitk kann das, bei qgit hab ichs nie probiert. Im Prinzip sieht der Ablauf so aus:

1. Ermitteln der gewünschten Revision (in gitk oder in "git log" rausfischen)
2a. auf den Stand zurückspringen: git reset --hard revisionshash oder
2b. die alte Revision auschecken: git checkout revisionshash (Ergebnis nicht commitbar, muss zwangsläufig in einen anderen branch überführt werden)
3. einen Branch zum parallelen weiterarbeiten erstellen: git branch neuername

Bei 2a daran denken, nach Schritt 3 im Originalbranch wieder auf HEAD zu wechseln. gitk macht standardmäßig 2a (und fragt nach --soft oder --hard) (Rechtsklick auf die Revision, den Wortlaut weiß ich gerade nicht, aber du siehst das dann schon).
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

MoonKid
Beiträge: 513
Registriert: 12.03.2012 22:36:43

Re: [git] einige Versionen zurückspringen

Beitrag von MoonKid » 16.03.2014 18:12:37

Ok, das funktiniert mehr oder weniger erstmal.

Mein Grundproblem ist, dass ich mich da insgesamt sehr unsicher fühle. Es fühlt sich alles anders an als CVS/SVN mit schicker Windows-GUI.

Ich lese Doku und im Grunde ist mir die Funktsweise von Git auch klar. Aber das gibt mir in der täglichen Anwendung keine Sicherheit. Und immerhin geht es ja um meine Daten. Und git eigenet sich ja auch wunderbar dazu, bei falscher Anwendung alles über den Jordan zu jagen.

Kennt ihr vielleicht ein DAU-taugliches Tutorial oder ein Git-for-SVN-users-tutorial?

Benutzeravatar
schorsch_76
Beiträge: 2601
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: [git] einige Versionen zurückspringen

Beitrag von schorsch_76 » 17.03.2014 10:21:39


MoonKid
Beiträge: 513
Registriert: 12.03.2012 22:36:43

Re: [git] einige Versionen zurückspringen

Beitrag von MoonKid » 18.03.2014 16:22:54

Zu meiner Frage eine "Antwort". https://www.atlassian.com/de/git/tutori ... ng-changes

Grundsätzlich ist das Tutorial unter diesem Link sehr zu empfehlen.

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: [git] einige Versionen zurückspringen

Beitrag von peschmae » 18.03.2014 17:03:17

Kommt halt drauf an was du genau machen willst. Ich benutze sehr oft git rebase -i HEAD~10 um z.B. die letzten 10 commits zu editieren (commit messages aufräumen, einzelne commits zusammenführen, entfernen, umsortieren, etc). Sollte History-Umschreibaktionen sollte man natürlich nur machen, wenn man die Commits nicht schon irgendwo veröffentlicht hat.

Ganz allgemein: Wenn du in Git Angst hast durch irgend eine Aktion Daten zu vernichten oder dich sonstwie zu verirren, mach einfach vorher einen Backup-Branch (git branch backup_20140312), dann kommst du in jedem Fall wieder dahin zurück wo du vorher warst... - und wenn alles gut ging löschst du den auch gleich wieder git branch -d backup_20140312....

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Antworten