• Home
  • Impressum
ComSubVies Creative Content

ComSubVies Creative Content

  • Informatik
  • Kultur
    • Film / Kino
  • Modellbau
  • Sonstiges
  • Urlaub
    • Tauchen
    • Wandern

Installation eines Git-Hosts

Posted on 24. Jan, 2010 by Markus Schabel in Informatik

Nachdem ich derzeit ohnehin keinen vernünftigen privaten Software-Development Server habe, und es dann doch schön langsam an der Zeit ist, die diversen Projekte wieder mal unter eine Versionskontrolle zu stellen (TimeMachine Backups sind zwar durchaus sicher, einfach und zuverlässig, aber eben nur Backups), habe ich beschlossen diesmal auf git zu setzen – nachdem ich ja in den Jahren zuvor meistens mit CVS bzw. vereinzelt mit SVN gefahren bin, wollte ich mal was neues probieren…

Um Git Repositories vernünftig hosten zu können gibt es das Tool gitosis, welches bereits als Debian-Paket verfügbar und somit leicht zu installieren ist:

$apt-get install gitosis

Im Anschluss muss man gitosis mit einem SSH public key initialisieren, damit man sich ohne Passwort mit dem gitosis Repository (welches zur Konfiguration verwendet wird) verbinden kann. Eine entsprechenden Schlüssel kann man mit ssh-keygen erzeugen:

$ssh-keygen -t rsa

Diesen Schlüssel muss man jetzt für gitosis aktivieren:

$sudo -H -u gitosis gitosis-init < ~/.ssh/id_rsa.pub

gitosis verfügt über ein eigenes Konfigurations-Repository über das es konfiguriert werden kann. Dieses lässt sich wie folgt auschecken:

$git clone gitosis@localhost:gitosis-admin.git

Dieser Befehl checkt das Repository aus und speichert es im aktuellen Pfad im Verzeichnis gitosis-admin. In diesem befindet sich einerseits eine Konfigurationsdatei gitosis.conf, sowie zusätzlich ein Verzeichnis keydir, in dem die SSH public keys der Benutzer gespeichert werden.

In der Konfigurationsdatei gitosis.conf gibt es Blöcke für Benutzergruppen und Repositories. Ich lege daher einfach einmal eine Gruppe für Entwickler an (wo allerdings momentan nur ich Mitglied bin). Außerdem sage ich, dass diese Gruppe mit dem Repository diplomarbeit (vielleicht sollte ich mehr Leute in diese Gruppe schreiben, vielleicht findet sich ja ein Depp der mir die Arbeit abnimmt) arbeiten darf.

[group developers]
members = markus
writable = diplomarbeit

Die geänderte Konfiguration kann mittels der folgenden Befehle aktiviert werden:

$git commit -a -m "Created group developers with access to repository diplomarbeit"
$git push

Der erste Befehl speichert dabei die Änderungen in der lokalen Kopie des Repositorys, während mit git push die Änderungen auf das Remote-Repository übertragen werden.

Die Diplomarbeit lässt sich jetzt in das Repository einchecken (dazu muss zuerst in das entsprechende Verzeichnis gewechselt werden):

$git init
$git remote add origin gitosis@SERVER:diplomarbeit.git

Mit git init wird dabei ein lokales git Repository angelegt (d.h. das Verzeichnis .git wird erstellt), mit git remote add wird ein neues Ziel origin angelegt, welches der angegebenen URL entspricht). Anschließend können die lokalen Dateien für die Versionskontrolle aktiviert werden (git add teilt git mit, das diese Dateien ab sofort unter Versionskontrolle sein sollen):

$git add .

Die Änderungen (d.h. das Hinzufügen der Dateien) muss nun noch bestätigt werden, wobei hier zusätzlich ein entsprechender Kommentar angegeben werden sollte, der die Änderungen beschreibt:

$git commit -m "Initial import"

Das Repository muss nun auch auf den Server gepusht werden. Hierbei werden die Änderungen an das Ziel origin (welches zuvor mit git remote add konfiguriert wurde) übertragen. Diese werden dabei in die lokale Branch master als remote Branch heads/master gespeichert werden soll:

$git push origin master:refs/heads/master

Die Repositories werden auf dem Server dabei im Verzeichnis /srv/gitosis/repositories/ gespeichert, welches natürlich entsprechend in die Backups aufgenommen werden sollte.

Verwandte Literatur (amazon):

CrossVC. Grafische Versionskontrolle mit CVS und SubversionCrossVC. Grafische Versionskontrolle mit CVS und Subversion
C++: Objektorientiertes Programmieren von Anfang anC++: Objektorientiertes Programmieren von Anfang anC++ auf knapp 300 Seiten im Taschenbuch-Format? Mutig. Aber machbar. Und in diesem Fall gelungen. Mit C++, Objektorientiertes Programmieren von Anfang... Read More >
Git. Verteilte Versionsverwaltung für Code und DokumenteGit. Verteilte Versionsverwaltung für Code und Dokumente
Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • FriendFeed
  • HackerNews
  • PDF
  • Posterous
  • Reddit
  • StumbleUpon
  • Tumblr
  • Twitter

Leave a Reply

Hier klicken, um die Antwort abzubrechen.

24. Jan, 2010

Markus Schabel

Informatik

Tags: Git, Programmieren, Versionskontrolle

Leave a comment

  • <
  • >
  • Letzte Artikel

    • Command & Conquer – Freeware
    • Schneeschuhwanderung auf der Rax
    • Installation eines Git-Hosts
    • Husarentempel
    • Parrot AR.Drone
    • GandALF T-Shirt
    • Solomon Kane
    • Silex SX-560 Embedded WLAN
    • Migration von LVM Volumes
    • Parkinson’s Law
  • Letzte Kommentare

    • Theo Baysinger bei AVR microtouch Projekt
    • Erik Schwarzfeld bei Urlaub Curaçao – Tag 0
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 2
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 4
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 6
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 5
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 3
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 1
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 7
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 0
  • Schlagwörter

    AirPower Apple Autopilot AVR Cocoa Cocoa Touch Computerspiele Curaçao Dokumentation Drone Embedded Systems featured Filme Flugshow Git Hubschrauber iPhone iPhone SDK Java Karibik Kino Lanzarote Linux LVM Museen Navigation Neunkirchnerhütte Norwegen NTP Programmieren Rätsel Serien SX-560 T-Shirt Tauchen Touchscreen Trailer UAV Versionskontrolle VHDL Wandern Windows 7 Wissenschaft WLAN Xen
  • Archive

    • Februar 2010 (2)
    • Januar 2010 (5)
    • Dezember 2009 (2)
    • November 2009 (8)
    • Oktober 2009 (7)
    • August 2009 (1)
    • Juli 2009 (26)
    • Juni 2009 (1)
    • Mai 2009 (3)
    • April 2009 (1)
    • März 2009 (2)
    • Februar 2009 (8)
    • Januar 2009 (1)
  • Blogroll

    • Development Blog
    • Documentation
    • Plugins
    • Suggest Ideas
    • Support Forum
    • Themes
    • WordPress Planet

© 2009 ComSubVies Creative Content. All Rights Reserved.

Delicious font by exljbris. Powered by Wordpress. Designed by Woo Themes