Kategorie: Mac, Web     Comments (1)    

Git Repository auf Webspace ohne WebDAV einrichten

Hat man etwas Webspace (z.B. für das eigene Blog) kann man relativ einfach sein eigenes git Repository anlegen. Was man dafür benötigt ist etwas Webspace mit Webserver und ssh Zugang. Eigentlich benötigt man auch noch WebDAV aber es geht auch ohne. Wie beschreibt der folgende Text.

Ersteinmal muss man sich “git” installieren. Einfach die aktuelle git-Version von http://git-scm.com/ herunterladen und auf den eigenen Webspace hochladen. Jetzt via ssh auf dem Webserver anmelden und git entpacken und kompilieren.

tar xzvf git-1.6.1.tar.gz
cd git-1.6.1
make configure
./configure --prefix=/absoluter/pfad/zum/webspace/git/
make all
make install

Nun hat man git auf seinem Server installiert und sollte noch die PATH Umgebungsvariable anpassen. Dazu habe ich in meinem Homeverzeichnis die Datei .profile mit folgendem Inhalt angelegt:

export PATH="/absoluter/pfad/zum/webspace/git/bin:$PATH" 

Jetzt kann man sein lokales git Repository für den Webspace vorbereiten. Auf meinem Rechner habe ich in dem Ordner “FirstGit” ein kleines Projekt, was durch git versioniert wird.

git clone --bare ./FirstGit FirstGit.git 

Nun kopiert man den Ordner FirstGit.git auf seinen Webserver und führt dort folgende Schritte aus:

cd FirstGit.git
git --bare update-server-info
mv hooks/post-update.sample hooks/post-update

Die Datei hooks/post-update musste ich noch anpassen und den darin enthaltenen Befehl exec git-update-server-info in exec git update-server-info ändern.
Um sich etwas Tipparbeit zu sparen editiert man auf seinem lokalen Rechner die Datei ~/.gitconfig und fügt einen neuen remote-Abschnitt ein.

[remote "FirstGit"]
url = ssh://Login@my.domain/absoluter/Pfad/zum/Projekt/FirstGit.git
uploadpack = /absoluter/pfad/zum/webspace/git/bin/git-upload-pack
receivepack = /absoluter/pfad/zum/webspace/git/bin/git-receive-pack

Wechselt man auf dem lokalen Rechner in den Projekt Ordner “FirstGit” kann man nun mit dem Befehl

git push FirstGit

das Repository auf dem Webserver aktualisieren. Dies geschieht wie im Remote-Abschnitt eingetragen via SSH. Nutzt man ssh shared-key authentication kann man sich auch das eingeben des Passworts ersparen. Würde man die Übertragung nicht per SSH sondern via HTTP machen wollen, wäre an dieser Stelle ein Webserver mit WebDAV Unterstützung nötig. Das bietet jedoch nicht jeder Hoster. SSH ist da noch durchaus üblicher.

Das Projekt kann man sich via HTTP mit folgendem Befehl vom Webserver holen:

git clone http://my.domain/FirstGit.git

Möchte man lediglich die lokale Version aktualisieren reicht folgendes:

git pull http://my.domain/FirstGit.git master

Für Änderungen via push wieder hochzustellen ist man auf SSH angewiesen, clone und pull funktionieren jedoch auch ohne WebDAV problemlos.

Kategorie: Mac     Comments (0)    

Textmate und git auf dem Mac

Textmate ist ein wirklich netter leichter Editor zum entwickeln und “git” ein modernes Versionsverwaltungssystem. Beides zusammen ist ein super Gespann für die Webentwicklung. Hier eine kleine Beschreibung wie man “git” in Textmate integriert.

1. TextMate installieren

2. git mittels MacPorts installieren

sudo port install git-core

3. git Benutzereinstellungen konfigurieren

git config --global user.name "Mein Name"
git config --global user.email "Meine EMail"

4. git Farben einstellen

git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
git config --global color.interactive auto

5. git Exclude Dateien einstellen

git config --global core.excludesfile ~/.gitignore
echo "*~" >~/.gitignore
echo ".DS_Store" >>~/.gitignore

6. Einstellen der git Gui “gitk”

cat >~/.gitk <<\EOF
set mainfont {Monaco 10}
set textfont {Monaco 10}
set uifont {Monaco 10}
EOF

7. git Aliase für einfache Benutzung einrichten

git config --global alias.st status
git config --global alias.ci commit
git config --global alias.co checkout
git config --global alias.br branch

8. git mergetool für Apple opendiff konfigurieren

git config --global merge.tool opendiff
git config --global merge.summary true

9. git TextMate Bundle installieren

mkdir -p /Library/Application\ Support/TextMate/Bundles
cd !$
git clone git://gitorious.org/git-tmbundle/mainline.git Git.tmbundle
osascript -e 'tell app "TextMate" to reload bundles'

In den TextMate Shell Variablen Einstellungen jetzt noch die Variable “TM_GIT” mit dem Wert “/usr/local/bin/git” erstellen und nun sollte “git” und TextMate prima zusammenarbeiten und man kann loslegen.

© 2008-2010 Christian Müller