Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Git im CS-Netz

History Lesson!
Dieser Artikel spiegelt sehr wahrscheinlich nicht mehr den aktuellen Stand wider, könnte aber trotzdem von Interesse sein.

Dieser Artikel beschreibt wie man die Versionskontrolle namens Git im cs-Netz einrichtet und für weitere User bereitstellt. Es werden grundlegende Unix-Kenntnisse vorausgesetzt. Zum Einrichten von Git im tubIT-Netz siehe Git im tubIT-Netz.

Git Software einbinden

Git ist auf den cs-Rechnern in /opt/csw/bin verfügbar und erfordert die Anpassung der PATH Variablen (z.B. PATH="/opt/csw/bin":$PATH ) Falls dies nicht mehr der Fall sein sollte, kann Git in das Home-Verzeichnis installiert werden.

Remote Repository erstellen

Um ein Remote Repository names foo im Home-Verzeichnis auf einem cs-Rechner zu erstellen, wird ein Git-Verzeichnis (Konvention: Suffix git) erstellt und initialisiert:

mkdir foo.git && cd foo.git
git init --bare

Anschließend können eine Gruppe erstellt, die Benutzerrechte angepasst und andere User in die Gruppe eingeladen werden. (genauere Anleitung auf Diskussionsseite).

Administrator: Erste Schritte

Der folgende Abschnitt wird auf dem Rechner des Administrators ausgeführt. Das gerade erstellte Git Repository kann nun mit Inhalt gefüllt werden. User und remotehost müssen durch den cs-usernamen bzw. einen cs-Rechner ersetzt werden.

mkdir foo && cd foo
git init
...
git add .
git commit -a -m "Initial commit"
git push ssh://user@remotehost/home/user/foo.git master

Somit ist das remote Repository eingerichtet und der aktuelle Branch ist master (head).

User

Erste Schritte

Als erstes wird eine Kopie des Repositorys erstellt:

git clone ssh://user@remotehost/home/user/foo.git

Anschließend kann man die Konfigurations-Datei .git/config ändern, um kürzere Befehle benutzen zu können. Die Datei sollte so aussehen:

[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[remote "origin"]
	url = ssh://user@remotehost/home/user/foo.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master
[user]
	name = user
	email = user@example.com

Arbeiten mit dem Git-Repo

Holt die Änderungen des Remote Repositorys:

git pull

Sendet die Veränderungen an das Remote Repository:

git push

Zeigt den Commit-Log an

git log

Zeigt noch nicht gespeicherte Änderungen an:

git diff

Links

http://git-scm.com

alternativ: Subversion im CS-Netz