Etherpad, der kooperative Texteditor auf dem meine Arbeit basiert, ist ein Open-Source Projekt, welches das verteilte Versionskontrollsystem GIT einsetzt. Die Seite github.com stellt für solche Projekte eine kostenlose Plattform dar. Im folgenden möchte ich kurz beschreiben, wie man einen Fork eines bestehenden, auf GitHub gehosteten Projekts anlegt.
Im folgenden wird davon ausgegangen, dass es sich um einen Windows Host handelt und das Git-1.7.4-preview20110204.exe als GIT Version installiert ist. Darüber hinaus wird vorausgesetzt, dass man einen Account auf GitHub angelegt hat und angemeldet ist.
Um GIT über SSH zu benutzen muss man zu erst ein Public/Private Key Paar erzeugen. Dafür benutzt man das Tools ssh-keygen. Dieses Tool erzeugt folgenden Dateien im Verzeichnis ~/.ssh/
- id_rsa
- id_rsa.pub
Den Inhalt der Datei id_rsa.pub fügt man nun bei GitHub unterhalb von Account Settings -> SSH Public Keys ein. Tut man dies nicht, so quittiert Git jegliche Kommunikationsversuche mit GitHub mit einem Permission denied (publickey) Fehler. Siehe dazu auch http://help.github.com/ssh-issues.
Jetzt, wo die Kommunikation mit GitHub funktionieren sollte, navigiert man über das Webinterface auf die Seite des Projekts, welches man gerne forken möchte, in meinem Fall als https://github.com/ether/pad. Dort klickt man auf das Fork-Symbol im rechten oberen Bereich. Siehe dazu auch http://help.github.com/fork-a-repo.
Nun hat man einen Fork des bestehenden Projekts angelegt, welches bis jetzt aber nur auf GitHub liegt. Aus einer GIT Shell heraus kann man sich das Repository lokal clonen, im Falle meines Etherpad-Forks also z.B. mit folgendem Befehl.
git clone git@github.com:sciflow/pad.git
Um nun Änderungen am Originalrepository in den Fork integrieren zu können, muss man dieses als sog. Remote hinzufügen. Dazu wechselt man in das lokale Verzeichnis des gerade geclonten Repositories, als bsp. ~/Desktop/Masterarbeit/github/sciflow/pad und fügt github.com/ether/pad als neuen Remote ‘upstream’ hinzu. Anschließend kann man mit Hilfe von git fetch und git merge die Änderungen am ether/pad Repository in das lokale Repoistory integrieren.
Michael@MICHAEL-PC ~/Desktop/Masterarbeit/github/sciflow $ cd pad/ Michael@MICHAEL-PC ~/Desktop/Masterarbeit/github/sciflow/pad (master) $ git remote add upstream git://github.com/ether/pad.git Michael@MICHAEL-PC ~/Desktop/Masterarbeit/github/sciflow/pad (master) $ git fetch upstream From git://github.com/ether/pad * [new branch] master -> upstream/master * [new branch] postgres -> upstream/postgres * [new branch] releases-1.0 -> upstream/releases-1.0 * [new branch] releases-1.1 -> upstream/releases-1.1 Michael@MICHAEL-PC ~/Desktop/Masterarbeit/github/sciflow/pad (master) $ git merge upstream/master Already up-to-date.
Hinterlasse einen Kommentar