Wie Ihr eure TYPO3 Installation mit Git verwalten könnt. In ein paar Schritten erklärt.

Lokale Website

Als erstes müsst ihr auf eurem PC oder MAC z.B. XAMPP oder MAMP installieren. Dies dient dann als euer lokaler Webserver mit der erforderlichen PHP und MYSQL Version.

Installiert euch das Projekt das alles läuft so wie es gehört.
ImageMagick müsst ihr auch noch installieren, falls es ein TYPO3 Projekt werden soll.

Wenn alles soweit läuft können wir mit dem ersten GIT Befehl starten.
Am Mac läuft GIT schon soweit, unter Windows muss man es installieren.

Lokales Repository

Lokales Repository initialisieren.
Geht dazu mit der Konsole in euer Projekt Root Verzeichnis und führt diesen Befehl aus:
Tipp: Unter Windows kann man im Projektverzeichnis rechte Maus „Git Bash“ auswählen, da der Befehl in der normalen Konsole nicht funktioniert.

Dieser Befehl legt ein lokales Repository an (.git Ordner im Projektverzeichnis). Als nächstes müssen wir eine .gitignore anlegen (im Root Projektverzeichnis). In der .gitignore stehen jene Dateien die bei Änderung nicht von GIT „getracked“ werden sollen. Bei TYPO3 6.2 sollte diese Datei ungefähr so aussehen:

typo3temp und _processed_ werden generiert und die AdditionalConfiguration.php verwendet man für Lokale Einstellungen z.B. wird die Datenbank eine andere sein und ImageMagick nicht zwingend den gleichen Pfad haben.

Jetzt adden wir alle files (der Punkt steht für alle files):

Dann commiten wir das ganze:

INITIAL ist die Commitnachricht.

Visualisierung mit SourceTree

Am Anfang ist es sehr bequem wenn man die GIT History visualisiert. Das Programm Sourcetree kann ich dazu empfehlen. Nach der Registrierung können wir das Lokale Repository öffnen über „New Repository“ oder per Drag & Drop den Root Projekt Ordner reinziehen.
Danach mit Doppelklick in den Master branch gehen. Repository im Sourcetree master branch

Remote Repository

Das Remote (entfernte) Repository könnt ihr beispielsweiße auf bitbucket.org anlegen. Bis 5 User sind kostenlos. Legt euch ein neues Repository an und wählt einen Namen (in meinen Fall gittest). Hier könnt ihr noch auswählen ob mit oder ohne Wiki…

Klickt dann auf „i have an existing projekt“ dann zeigt Bitbucket euch schon die richtigen Befehle in der Konsole.

Jetzt befindet sich euer Repository auf bitbucket und ihr könnt mit der Entwicklung loslegen.

Push & Pull (Fetch)

Bei einem Push werden die neuen lokalen Commits auf das Remote Repository hochgeladen. Um die Änderungen anderer Entwickler zu sehen bzw. in sein Repository zu übernehmen macht ihr zuerst einen git fetch – hier werden im Sourcetree schön die neuen Commits angezeigt. Der weiße Punkt zeigt den akutellen commit an auf den ihr seid.

Wenn man die Änderungen in sein Repository laden will macht man einen git pull, somit sind die Änderungen übernommen. Wenn 2 oder mehrere dieselbe Datei bearbeitet haben, gibts einen Konflikt den ihr beheben müsst. Das wird im Souretree sehr schön angezeigt und ihr könnt die Datei meistens ohne Probleme zusammenführen.

Arbeitskopie am Produktivserver

Auf einen geeigneten Server mit SSH Zugang könnt ihr einfach einen Klon erstellen:

Der „.“ bedeutet, dass das Repository in den Ordner, indem man sich befindet, geklont wird. Nach dem klonen liegen die Dateien am Server und laufen gleich wie eine Lokale Arbeitskopie.

Wenn ihr jetzt ein neues Feature einbaut, könnt ihr das Lokal entwickeln und bei Fertigstellung auf den Server pullen.

Achtung: am Server können sich Sachen ändern (z.B. Kundenbilder) die man auch adden bzw. committen und dann pushen muss. Am besten vor dem Push lokaler Änderungen schauen was am Server passiert ist, da am Server mergen bzw. Konflikte beheben nicht so lustig ist, wenn man kein Konsolenfreak ist.

Stand am Server überprüfen:

Mit git status sieht man welche Dateien hinzugefügt bzw. geändert wurden.

Fazit

Im Groben wars das mit den Grundfunktionen. Natürlich gibt es viel mehr Funktionen die ihr beim Arbeiten mit .git nach und nach lernen werdet. Der Aufwand GIT einzuführen lohnt sich meiner Meinung nach auf jedenfall. Jedesmal wenn ich zurückdenke an Zeiten ohne GIT als Versionierung muss ich schmunzeln.