TYPO3 User Group Stuttgart | Vaclav Janoch <[email protected]> | 11.04.2013 |
Contents
- Git
- Basics
- Git benutzen
- Git im Team benutzen
- GitHub
- Git auf einem eigenen Server
- Für kleine Teams (bzw. ohne ACL)
- 1. Git auf dem Server installieren. (Server)
- 2. Einen User namens
git
erstellen (der Name kann natürlich frei gewählt werden). - 3. Die Shell des
git
-User's auf diegit-shell
ändern. (Server) - 4. Public Keys registrieren. (Server)
- 5. Repositories auf dem Server erstellen. (Server)
- 6. User und E-Mail einstellen. (Client)
- 7. Repositories clonen. (Client)
- 8. Dateien verändern. (Client)
- 9. Dateien dem Index/Stage hinzufügen. (Client)
- 10. Dateien commiten. (Client)
- 11. Dateien pushen. (Client)
- Für größere Teams (bzw. mit ACL)
- Git-Repositories im Browser
- Für kleine Teams (bzw. ohne ACL)
- Weiterführende Links
- Composer
Git ist eine Software zur verteilten Versionswerwaltung von Dateien:
- Was heist verteilt?
- Es gibt keinen zentralen Server.
- Jedes Repository ist "eigenständig".
- Datentransfer zwischen Repositories.
- Was heist Versionsverwaltung?
commit
: Ein Satz von Änderungen wird in einer "Version" zusammengefasst.branch
: Möglichkeit zur Entwicklung mehrer Entwicklungszweige.- z.B. master
- z.B. TYPO3_6-0
- z.B. TYPO3_4-7
tag
: Markierung eines Entwicklungsstandes.- z.B. TYPO3_6-0-1
- Weitere Begriffe
HEAD
: Zeigt (i.d.R) auf den letzen Commit des aktuellen Branchmaster
: Standard-Branchorigin
: Standard-Remote-Repository
Sehr guter und schlanker Einstieg: http://rogerdudler.github.io/git-guide/index.de.html
Grundsätzlich reicht es, dass die Repositories für alle Teammitglieder erreichbar sind.
Besonders für Open-Source-Projekte interessant: http://github.com
Bei dieser Variante haben alle Teammitglieder Zugriff auf alle Projekte.
Punkte 1.-5. werden auf dem Server ausgeführt, ab 6. auf den Clients.
yum install git
useradd git
usermod -s /usr/bin/git-shell git
Die Public Keys der Teammitglieder in <git_user's_home>/.ssh/authorized_keys
eintragen.
git init --bare <path_to_repositories>/<repository_name>.git chown -R git:git <path_to_repositories>/<repository_name>.git
Hier eine kleine Hilfe (ggf. Pfad zu den Repositories anpassen):
#!/bin/bash if [ $# = 1 ] then git init --bare /git/$1.git chown -R git:git /git/$1.git else echo "Bitte (nur) einen Namen fuer das zu erstellende Git-Repository angeben!" echo "Usage: ./create_git_bare_repository.sh <repository_name>" exit 1 fi
git config --global user.mail "[email protected]" git config --global user.name "username or name"
# ssh git clone user@server:project.git git clone ssh://user@server:project.git # local git clone /opt/git/project.git git clone file:///opt/git/project.git # git git://user@server:project.git # http git clone http://example.com/gitproject.git
Einfach an den Dateien arbeiten.
Alle Dateien:
git add .
Bestimmte Datei:
git add <file>
git commit -m "Some message."
Tip
Siehe TYPO3 Flow Coding Guidelines für Commit Messages:
Ggf. weiterarbeiten und wieder commiten. Es muss natürlich nicht nach jedem commit
ein push
erfolgen. push
eigentlich erst, wenn Task abgeschlossen ist.
git push origin master
Nur bestimmte Teammitglieder haben Zugriff auf bestimmte Projekte. Einfachere Verwaltung der User.
- Gitosis
- Keys werden in einem git-Repository gepflegt
- Zugriffskontrolle über ACL
- http://git-scm.com/book/ch4-7.html
- GitLab
Eine Möglichkeit ist Gitweb: https://git.wiki.kernel.org/index.php/Gitweb
Übersichtlicher und vor allem einfacher zu installieren ist GitList: http://gitlist.org
http://git-scm.com | Offizielle Git Webiste. |
http://gitref.org | Übersichtliche Befehlsreferenz. Ist nicht ganz vollständig, reicht aber für den Alltag. |
http://wiki.weinimo.de/Git-Hilfen | Diverse Lösungen für Alltagsfragen. |
Alles was man über Composer wissen muss: http://getcomposer.org
- Datenbank erstellen
- Datenbankuser erstellen
- Virtual Host erstellen
Siehe: http://docs.typo3.org/flow/TYPO3FlowDocumentation/Quickstart/
composer create-project -s dev typo3/flow-base-distribution htdocs chown -R apache:apache . cd htdocs composer install --dev
In die composer.json folgendes hinzufügen um TYPO3.Surf zu installieren.
{ ... "require": { ... "typo3/surf": "dev-master" }, ... }