HOWTO:Git: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „Hier wird erklärt, wie man in seinem Uni-Home ein Git-Repo einrichtet, in das auch andere Studenten pushen/pullen können. Man sollte dabei beachten, dass bei…“) |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
Hier wird erklärt, wie man in seinem Uni-Home ein Git-Repo einrichtet, in das auch andere Studenten pushen/pullen können. Man sollte dabei beachten, dass bei dieser Methode '''jeder''' der die URL zum Repo kennt, pushen/pullen kann. Wenn man das Verschmerzen kann, hat man sehr zügig ein Repo und kann anfangen zu arbeiten. | Hier wird erklärt, wie man in seinem Uni-Home ein Git-Repo einrichtet, in das auch andere Studenten pushen/pullen können. Man sollte dabei beachten, dass bei dieser Methode '''jeder''' der die URL zum Repo kennt, pushen/pullen kann. Wenn man das Verschmerzen kann, hat man sehr zügig ein Repo und kann anfangen kollaborativ zu arbeiten. | ||
== Workaround bei Zugriffsbeschränktem Homeverzeichnis == | |||
Wenn alle Teilnehmer im gleichen Jahrgang sind, kann dieser Workaround ignoriert werden. | |||
Da die studentischen Homeverzeichnisse nicht homogen organisiert sind, sondern einer gewachsenen Struktur entspringen, muss als erstes überpüft werden, ob alle Teilnehmer Zugriff auf den übergeordneten Ordner haben. | |||
Also einmal in dem Home-Verzeichnis, wo das Repo später liegen soll folgendes prüfen: | |||
cd ~/.. | |||
pwd | |||
erzeugt z.B. folgende Ausgabe: | |||
/informatik2/students/home | |||
Nun müssen alle Teilnehmer, die Zugriff auf das Repo erhalten sollen prüfen, ob sie Zugriff auf den Ordner haben. | |||
Falls das nicht der Fall sein sollte, muss ein anderer Teilnehmer das Repo bei sich einrichten. | |||
== Grundstruktur Einrichten == | |||
Diese Schritte müssen nur einmalig gemacht werden. | |||
Um anderen das Navigieren in das eigene Homeverzeichnis zu erlauben, muss das Execute-Bit gesetzt werden. | Um anderen das Navigieren in das eigene Homeverzeichnis zu erlauben, muss das Execute-Bit gesetzt werden. | ||
Damit ist es für andere nicht möglich den Inhalt des Ordners einzusehen. | Damit ist es für andere nicht möglich den Inhalt des Ordners einzusehen. | ||
chmod | chmod a+x ~ | ||
Ein Ordner für alle Repos macht sich wahrscheinlich gut. | |||
mkdir ~/gitrepos | |||
Dieser muss für alle navigierbar sein. Also muss das Execution-Bit gesetzt werden. | |||
chmod a+x ~/gitrepos | |||
== Repo Einrichten == | |||
Nun muss noch die Ordnerstruktur angelegt werden. Um etwas "Sicherheit" zu gewähren macht sich eine zufällige Buchstabenkombination am Ende ganz gut. Die zwei Ebenen und die etwas sonderbare Benennung sind gewollt und sind so recht praktikabel. | Nun muss noch die Ordnerstruktur angelegt werden. Um etwas "Sicherheit" zu gewähren macht sich eine zufällige Buchstabenkombination am Ende ganz gut. Die zwei Ebenen und die etwas sonderbare Benennung sind gewollt und sind so recht praktikabel. | ||
mkdir -p ~/gitrepos/fgi3-sem- | mkdir -p ~/gitrepos/fgi3-sem-hhoghdf8gu908erg/fgi3-sem.git | ||
Ein zweites Repo würde man dann z.B. anlegen unter | Ein zweites Repo würde man dann z.B. anlegen unter | ||
Zeile 21: | Zeile 48: | ||
* Durch den Präfix "fgi3-sem-" auf erster Ebene sieht man bei einem ls im Ordner gitrepos direkt um welche Repos es sich handelt | * Durch den Präfix "fgi3-sem-" auf erster Ebene sieht man bei einem ls im Ordner gitrepos direkt um welche Repos es sich handelt | ||
* Man hat die Gewissheit, dass niemand die Repo-Url einfach erraten kann und somit Zugriff aufs Repo erlangt | * Man hat die Gewissheit, dass niemand die Repo-Url einfach erraten kann und somit Zugriff aufs Repo erlangt | ||
Die Verzeichnisse müssen für alle navigierbar gemacht werden. | |||
chmod -R a+x ~/gitrepos/fgi3-sem-hhoghdf8gu908erg | |||
Nun muss man in das Verzeichnis *.git wechseln | Nun muss man in das Verzeichnis *.git wechseln | ||
Zeile 26: | Zeile 57: | ||
cd ~/gitrepos/fgi3-sem-3hoghdf8gu908erg/fgi3-sem.git | cd ~/gitrepos/fgi3-sem-3hoghdf8gu908erg/fgi3-sem.git | ||
und initialisiert ein neues Repo. Die shared= | und initialisiert ein neues Repo ohne Working-Directory (bare). Die shared=0666 Option gibt '''allen''' Schreib- und Leserechte. | ||
git init --bare --shared= | git init --bare --shared=0666 | ||
Jetzt muss nur noch der Pfad zum clonen ermittelt werde. | Jetzt muss nur noch der <Pfad> zum clonen ermittelt werde. | ||
pwd | pwd | ||
Zeile 38: | Zeile 69: | ||
git clone <Kennung-des-Zugreifenden>@rzssh1.informatik.uni-hamburg.de:<Pfad> | git clone <Kennung-des-Zugreifenden>@rzssh1.informatik.uni-hamburg.de:<Pfad> | ||
Angenommen | Angenommen 11sieli hat das Repo angelegt und 5kumpe will drauf zugreifen, sähe der Befehl folgendermaßen aus. | ||
git clone | git clone 5kumpe@rzssh1.informatik.uni-hamburg.de:/informatik2/students/home/11sieli/gitrepos/fgi3-sem-3hoghdf8gu908erg/fgi3-sem.git | ||
Wundere dich nicht, wenn der Pfad zu deinem Home davon abweicht. Bei verschiedenen Jahrgängen kann das durchaus der Fall sein. | Wundere dich nicht, wenn der Pfad zu deinem Home davon abweicht. Bei verschiedenen Jahrgängen kann das durchaus der Fall sein. | ||
[[Kategorie:HOWTO]] | [[Kategorie:HOWTO]] |
Version vom 10. April 2013, 15:23 Uhr
Hier wird erklärt, wie man in seinem Uni-Home ein Git-Repo einrichtet, in das auch andere Studenten pushen/pullen können. Man sollte dabei beachten, dass bei dieser Methode jeder der die URL zum Repo kennt, pushen/pullen kann. Wenn man das Verschmerzen kann, hat man sehr zügig ein Repo und kann anfangen kollaborativ zu arbeiten.
Workaround bei Zugriffsbeschränktem Homeverzeichnis
Wenn alle Teilnehmer im gleichen Jahrgang sind, kann dieser Workaround ignoriert werden. Da die studentischen Homeverzeichnisse nicht homogen organisiert sind, sondern einer gewachsenen Struktur entspringen, muss als erstes überpüft werden, ob alle Teilnehmer Zugriff auf den übergeordneten Ordner haben. Also einmal in dem Home-Verzeichnis, wo das Repo später liegen soll folgendes prüfen:
cd ~/.. pwd
erzeugt z.B. folgende Ausgabe: /informatik2/students/home
Nun müssen alle Teilnehmer, die Zugriff auf das Repo erhalten sollen prüfen, ob sie Zugriff auf den Ordner haben. Falls das nicht der Fall sein sollte, muss ein anderer Teilnehmer das Repo bei sich einrichten.
Grundstruktur Einrichten
Diese Schritte müssen nur einmalig gemacht werden.
Um anderen das Navigieren in das eigene Homeverzeichnis zu erlauben, muss das Execute-Bit gesetzt werden. Damit ist es für andere nicht möglich den Inhalt des Ordners einzusehen.
chmod a+x ~
Ein Ordner für alle Repos macht sich wahrscheinlich gut.
mkdir ~/gitrepos
Dieser muss für alle navigierbar sein. Also muss das Execution-Bit gesetzt werden.
chmod a+x ~/gitrepos
Repo Einrichten
Nun muss noch die Ordnerstruktur angelegt werden. Um etwas "Sicherheit" zu gewähren macht sich eine zufällige Buchstabenkombination am Ende ganz gut. Die zwei Ebenen und die etwas sonderbare Benennung sind gewollt und sind so recht praktikabel.
mkdir -p ~/gitrepos/fgi3-sem-hhoghdf8gu908erg/fgi3-sem.git
Ein zweites Repo würde man dann z.B. anlegen unter
mkdir -p ~/gitrepos/vis-fjouh2o4tuh234nof/vis.git
Diese Art der Bennung hat folgende Vorteile:
- Beim clonen wird der Ordner fgi3-sem ohne die kryptische Buchstabenkombination benannt
- Durch den Präfix "fgi3-sem-" auf erster Ebene sieht man bei einem ls im Ordner gitrepos direkt um welche Repos es sich handelt
- Man hat die Gewissheit, dass niemand die Repo-Url einfach erraten kann und somit Zugriff aufs Repo erlangt
Die Verzeichnisse müssen für alle navigierbar gemacht werden.
chmod -R a+x ~/gitrepos/fgi3-sem-hhoghdf8gu908erg
Nun muss man in das Verzeichnis *.git wechseln
cd ~/gitrepos/fgi3-sem-3hoghdf8gu908erg/fgi3-sem.git
und initialisiert ein neues Repo ohne Working-Directory (bare). Die shared=0666 Option gibt allen Schreib- und Leserechte.
git init --bare --shared=0666
Jetzt muss nur noch der <Pfad> zum clonen ermittelt werde.
pwd
Nun kann jeder andere mit einem ssh-Zugang wie folgt clonen.
git clone <Kennung-des-Zugreifenden>@rzssh1.informatik.uni-hamburg.de:<Pfad>
Angenommen 11sieli hat das Repo angelegt und 5kumpe will drauf zugreifen, sähe der Befehl folgendermaßen aus.
git clone 5kumpe@rzssh1.informatik.uni-hamburg.de:/informatik2/students/home/11sieli/gitrepos/fgi3-sem-3hoghdf8gu908erg/fgi3-sem.git
Wundere dich nicht, wenn der Pfad zu deinem Home davon abweicht. Bei verschiedenen Jahrgängen kann das durchaus der Fall sein.