Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wechseln von SVN zu GIT (https://www.delphipraxis.net/175219-wechseln-von-svn-zu-git.html)

Romiox 6. Jun 2013 22:46

Wechseln von SVN zu GIT
 
Moin Moin!

Ich überlege schon seit ein paar Wochen, in Sachen VCS von SVN auf Git zu wechseln. Allerdings nur, weil mir das Angebot von BitBucket sehr gut gefällt, und ich mir dachte, so ein großer Unterschied kann das ja nicht sein... Naja. Ich habe jetzt testweise ein Projekt migriert, aber so richtig verstanden hab ich Git glaub ich nicht...

Ich benutze das VCS nicht im Rahmen komplexer workflows, ich pushe einfach nur meinen Code als BackUp auf einen Server auf eine Art und Weise, die mir erlaubt an manchen Dingen auch mal jemanden mitarbeiten lassen zu können. Bei Subversion hab ich halt nach jeder logischen Änderung die neuen Dateien commited und damit hatte sich das (via TortoiseSVN). Wie läuft das bei Git? (Als Software nutze ich SourceTree, den empfiehlt Atlassian(/BitBucket).)

Ich hab zwar meine Änderungen commiten können, aber nicht ohne weiteres (Ich hab gelesen man muss Änderungen stagen... Hä?), und dann konnte ich die auf den Server pushen... Richtig so? Wie schaut denn ein sinnvoller "workflow" aus? Habt Ihr nen Tipp was den Umstieg verständnismäßig erleichtern könnte?


Danke für Eure Tipps!

Gruß,
Janis

Phoenix 7. Jun 2013 06:12

AW: Wechseln von SVN zu GIT
 
Okay, bei Atlassian bist Du da schonmal auf der richtigen Seite.
SourceTree für Windows ist ein guter Client, ABER: Git ist erst dann spass, wenn man sich wirklich auf die Kommandzeile einlässt.

Das 'stagen' ist ein einfaches:
Code:
git add .
Damit werden alle lokalen Änderungen in den Index der zu comittenden Änderungen aufgenommen.
Der eigentliche commit
Code:
git commit -m 'message'
commited die Änderungen dann in das LOKALE repository.

Bei git wird üblicherweise viel öfter gebrancht und im branch viel öfter lokal commited als bei SVN. Im Regelfall sogar halbfertige Änderungen, oder wenn man meint man würde jetzt gleich mal Code wegwerfen.

Das
Zitat:

git push
in das (oder die) entfernte(n) Repository(-ies) wird dann meist nach dem merge in den master-branch (oder 'develop', je nach branching-Modell) gemacht, und damit stehen die Änderungen dann auch entfernt zur Verfügung.

Für den kompletten, fliessenden Umzug eines kompletten Produktes von SVN nach Git mit einem mehrköpfigen Entwicklungsteam hat Atlassian auch eine Art Anleitung parat (https://go-dvcs.atlassian.com/displa...t+on+Bitbucket), passend mit Blog posts zum Umzug: http://nvie.com/posts/a-successful-git-branching-model/ das wird bei Dir aber absoluter Overkill sein.

Interessant ist eher das Git tutorial (http://www.atlassian.com/git) und ein Artikel zu einem sehr guten Git branching model: http://nvie.com/posts/a-successful-git-branching-model/

Darauf aufbauend gibt es dann noch git-flow. Das ist zum einen mal eine Art Richtlinie wie man mit Git branches umgeht bzw. die Beschreibung eines Workflows mit Git, und zum anderen Tooling (git extensions), die diesen Workflow unterstützen. Hier gibts auch dazu einen guten Überblick: http://danielkummer.github.io/git-flow-cheatsheet/

Für Dich persönlich wird der Umstieg vermutlich etwas zäh, aber je mehr man mit Git arbeitet und rausgefunden hat wie einzelne Schritte tun kommt man damit sehr gut voran. Iich hab kürzlich das tägliche Backup meines Blogs inkl. der Datenbank mit einem 5-Zeilen Script das einen Mysql-Dump macht und sonst nur Git-kommandos aufruft auftomatisiert. Sowas geht einem sogar schon am Anfang ziemlich schnell von der Hand.

jobo 7. Jun 2013 06:48

AW: Wechseln von SVN zu GIT
 
Interessante Infos/ Links!
git flow kannte ich nicht, danke!

sx2008 7. Jun 2013 09:18

AW: Wechseln von SVN zu GIT
 
Ich würde zusätzlich TortoiseGit installieren.
TortoiseGit hat nach kleinen Anfangsschwierigkeiten inzwischen eine gute Qualität erreicht.
Wenn du TortoiseSVN kennst dürfte der Umstieg nicht so schwer fallen.

Phoenix 7. Jun 2013 09:34

AW: Wechseln von SVN zu GIT
 
Zitat:

Zitat von sx2008 (Beitrag 1217717)
Ich würde zusätzlich TortoiseGit installieren.
[...]
Wenn du TortoiseSVN kennst dürfte der Umstieg nicht so schwer fallen.

Davon würde ich stark abraten. TortoiseGit versucht, die Abläufe in Git irgendwie auf die bekannten Abläufe von SVN abzubilden.

Da sich Git aber Elementar von SVN unterscheidet, verbirgt TortoiseGit die eigentliche Mächtigkeit von Git und verleitet dazu, Git falsch zu verwenden.

Wenn man sich nicht wirklich auf Git einlassen will sondern es so verwenden will wie SVN, dann kann man genausogut besser gleich bei SVN bleiben. Da hat man dann deutlich mehr davon.

Romiox 7. Jun 2013 09:44

AW: Wechseln von SVN zu GIT
 
Vielen Dank für die Tipps, da hab ich ja jetzt erstmal was zum eingewöhnen! :)

sx2008 7. Jun 2013 13:18

AW: Wechseln von SVN zu GIT
 
Zitat:

Zitat von Phoenix (Beitrag 1217719)
TortoiseGit versucht, die Abläufe in Git irgendwie auf die bekannten Abläufe von SVN abzubilden.

Das war früher mal so.
Inzwischen kann man den üblichen Workflow ganz bequem über TortoiseGit abwickeln.
Branchen, Mergen, mit Stash arbeiten, mit mehreren Remote Repositories synchronisieren - alles kein Problem.
Ich schätze mal das die Funktionalität von Git zu 80% abgedeckt wird; das reicht locker für die tägliche Arbeit.

Ich empfehle ausserdem KDIFF3 als Compare und 3-Way-Merge Tool.

Memnarch 7. Jun 2013 16:29

AW: Wechseln von SVN zu GIT
 
Ich kann noch GitExtensions empfehlen.
http://code.google.com/p/gitextensions/

Phoenix 7. Jun 2013 16:38

AW: Wechseln von SVN zu GIT
 
Zitat:

Zitat von Memnarch (Beitrag 1217786)
Ich kann noch GitExtensions empfehlen.
http://code.google.com/p/gitextensions/

Hast Du Dir SourceTree schonmal angeschaut? http://sourcetreeapp.com


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz