SSH Schlüssel für Github unter Ubuntu und Mac OS X hinzufügen

Wenn man ein Git Repository bei GitHub hat, so ist es doch recht nervig mit diesem per HTTPS zu arbeiten, da man dort für jede Anwendung sein GitHub Passwort eingeben muss. Einfacher ist es wenn man seinen Public SSH Key bei GitHub hinterlegt. Dabei wird hier davon ausgegangen das man noch keinen SSH Schlüssel besitzt. Um sich einen solchen anzulegen wechselt man auf die Konsole und gibt dort:

ssh-keygen -t rsa -C ""

ein, wobei die Mailadresse natürlich zu ersetzen ist. In seinem Homeverzeichnis hat man nun im Ordner .ssh eine Datei namens id_rsa.pub welche man in einem Texteditor öffnen sollte. Nun geht man auf die Seite https://github.com/account/ssh und fügt dort einen neuen Schlüssel (Add another public key) hinzu. Dabei kopiert man die Zeichenkette aus der id_rsa.pub Datei in das Feld Key. Anschließend kann man sich ein Git Repository über SSH mittels:

git clone :Invertika/data.git

holen und (die entsprechenden Rechte vorausgesetzt) problemlos mittels

git push

die getätigten Änderungen wieder in das GitHub Repository bringen, ohne ein Passwort eingeben zu müssen. Unter Mac OS X funktioniert das ganze im übrigen genauso.

Weitere Informationen gibt es unter:
http://help.github.com/win-set-up-git/

Google Code SVN Repository in Git Repository umwandeln

Möchte man sein Google Code Subversion Repository mit der kompletten History in ein Git Repository umwandeln so ist das erstaunlich einfach. Im ersten Schritt sollte man die Project committers unter Adminster -> Project Members entfernen (sicher ist sicher). Dann sollte unter Adminster -> Source der Repository Typ auf Git gestellt werden.

Hier wird dabei ausgegangen das die Projektstruktur in etwa so aussieht:

branches
tags
trunk

Zuerst legt man im Homeverzeichnis eine Datei namens .netrc an und füllt sie mit folgendem Inhalt:

machine code.google.com login  password geheim

Den genauen Inhalt erfährt man dabei auch wenn man auf die Google Code Seite https://code.google.com/hosting/settings geht. Bevor es weitergeht installiert man mittels:

apt-get install git-svn

das Paket git-svn. Dieses Paket ist dabei für den Großteil der Konvertierung zuständig. Nun öffnet man ein Terminal und gibt dort folgendes ein (der Projektname muss natürlich angepasst werden):

git svn clone --stdlayout https://invertika.googlecode.com/svn invertika
cd invertika
git remote add googlecode https://code.google.com/p/invertika
git push --all googlecode

Anschließend fügt man die Project committers wieder hinzu und kann nun mit dem Git Repository arbeiten. Problematisch ist allerdings, das das Push Limit 500 MiB beträgt. Größere Repositories kann man damit nicht ohne weiteres pushen.

Weitere Informationen gibt es unter:
http://code.google.com/p/support/wiki/ConvertingSvnToGit
http://code.google.com/p/support/issues/detail?id=5790
http://code.google.com/p/support/issues/detail?id=5816
http://code.google.com/p/support/wiki/GitFAQ