Um Quellcodeverwaltung etwas farbiger und übersichtlicher zu machen, kann man die Ausgaben von GIT ganz einfach colorieren.
Einfach folgendes in die Shell eingeben:
1 | git config color.ui true |
Um Quellcodeverwaltung etwas farbiger und übersichtlicher zu machen, kann man die Ausgaben von GIT ganz einfach colorieren.
Einfach folgendes in die Shell eingeben:
1 | git config color.ui true |
Die Möglichkeit GIT als besseres Frontend für SVN zu verwenden ist eines meiner Lieblingsfeatures. GIT an ein existierendes SVN Repository anzubinden könnte nicht einfacher sein:
1 | git svn clone -s <svn -URL> |
… wobei der Schalter “-s” dafür sorgt, dass die standardmäßigen Verzeichnisse trunk, tags und branches verwendet werden.
Was aber tun, wenn man mit einem GIT Repository angefangen hat und das Ganze nachträglich an SVN anbinden möchte?
Kurz gesagt erstellt man dafür ein neues GIT Repository indem man das leere SVN Repository clont. Danach wird das alte GIT Repository mit “git remote add gitrepo <pfad -zum-alten-GIT-Repo>” eingehängt, der Inhalt rübergezogen (fetch) und mit dem aktuellen Branch zusammengelegt (merge).
Eine sehr gute, ausführliche Anleitung dazu gibt es bei der Arbeitsgruppe Software Technik der Uni Kaiserslautern.
Nach einer Anfrage von Nightfly hier eine kleine Anleitung wie man Datenbank-Änderungen auch mit GIT erfassen kann. GIT ist im Grunde nicht dazu gebaut Datenbanken zu synchronisieren. Man kann es aber mehr oder weniger dazu missbrauchen.
Dabei werden nicht die Änderungen erfasst, sondern jedes mal ein kompletter Dump erstellt. Wie gesagt, optimal ist das nicht, aber wer bei jedem Commit auch einen frischen MySQL Dump mit dabei haben möchte, kann folgendermaßen vorgehen:
Man erstellt eine .git/hooks/pre-commit Datei mit folgendem Inhalt:
1 2 3 4 5 | #!/bin/sh # pre-commit mysqldump5 -u someUser --password=somePassword --add-drop-table someDatabaseName > dump.sql git add dump.sql |
Damit erhält man automatisch in jedem Commit eine aktuelle dump.sql.
Um mit GIT lokal zu arbeiten, genügt eigentlich der einfache Shell-Befehl:
1 | git init |
Um aber verteilt mit mehreren Entwicklern und verschiedenen Rechnern zu arbeiten, erstellt man am besten ein zentrales Repository auf einem Server mit:
1 | git init --bare |
Danach können sich die einzelnen Entwickler wie folgt in das Repository einklinken:
1 | git clone ssh://user@host/dir/repository |
Danach kann man mit
1 | git pull |
bzw.
1 | git push |
Revisionen holen bzw. einspielen.
Insbesondere beim ersten Mal muss man dabei die Quelle und den Branch angeben:
1 | git pull origin master |
Ich erstelle gerade ein TYPO3 Projekt und wollte den Sourcecode mit GIT managen. Da ich natürlich <b>nur</b> die projektspezifischen Dateien ohne temporäre Inhalte und Caches im GIT Repository haben möchte, habe ich folgenden Inhalt in die .git/info/exclude geschrieben:
1 2 3 4 | /typo3_src* /public/typo3temp/* /public/typo3conf/temp_* /public/typo3conf/ENABLE_INSTALL_TOOL |
… ausgehend von der Verzeichnisstruktur:
/public
/typo3_src-4.3.1
Jetzt haben wir allerdings das Problem, dass der Ordner public/typo3temp nicht mit ins Repositry eingespült wird. Damit der Ordner doch mit im Repository auftaucht, habe ich in dem Verzeichnis eine .donotdelete Datei erstellt:
1 2 | touch /typo3temp/.donotdelete git add -f public/typo3temp/.donotdelete |
Danke an den Klops für den Tipp.
Vielleicht hilfts ja wem.