Bearbeiten von „HOWTO:Git

Zur Navigation springen Zur Suche springen

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
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 kollaborativ 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 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.
In diesem Fall wird allen Mitgliedern der der gesetzten Gruppe das Navigieren erlaubt.
(Ich hoffe mal alle Studenten sind in der selben Gruppe)


  chmod a+x ~
  chmod g+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-hhoghdf8gu908erg/fgi3-sem.git
  mkdir -p ~/gitrepos/fgi3-sem-3hoghdf8gu908erg/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 48: Zeile 21:
* 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 57: Zeile 26:
  cd ~/gitrepos/fgi3-sem-3hoghdf8gu908erg/fgi3-sem.git
  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.
und initialisiert ein neues Repo. Die shared=0660 Option gibt dem Besitzer und der Gruppe Schreib- und Leserechte.


  git init --bare --shared=0666
  git init --bare --shared=0660


Jetzt muss nur noch der <Pfad> zum clonen ermittelt werde.
Jetzt muss nur noch der Pfad zum clonen ermittelt werde.


  pwd
  pwd
Wer diese einzelnen Schritte nicht jedes Mal wiederholen möchte kann auch einfach das folgende Bash-Skript nutzen.
#!/bin/bash
if [ $# == 0 ]; then
    read -p "Name des Git-Repositorys: " folder
else
    folder=$1
fi
{
currfolder=$PWD
rnd_string=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -n 1)
mkdir -p $HOME/gitrepos/$folder-$rnd_string/$folder.git
chmod -R a+x $HOME/gitrepos/$folder-$rnd_string
cd $HOME/gitrepos/$folder-$rnd_string/$folder.git
git init --bare --shared=0666
path_to_gitfolder=$PWD
cd $currfolder
} >&-
echo $path_to_gitfolder


Nun kann jeder andere mit einem ssh-Zugang wie folgt clonen.
Nun kann jeder andere mit einem ssh-Zugang wie folgt clonen.
Zeile 96: Zeile 38:
  git clone <Kennung-des-Zugreifenden>@rzssh1.informatik.uni-hamburg.de:<Pfad>
  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.
Angenommen 5kumpe hat das Repo angelegt und 11sieli 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
  git clone 11sieli@rzssh1.informatik.uni-hamburg.de:/informatik2/students/home/5kumpe/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]]

Bitte beachte, dass alle Beiträge zu Fachschaft_Informatik von anderen Mitwirkenden bearbeitet, geändert oder gelöscht werden können. Reiche hier keine Texte ein, falls du nicht willst, dass diese ohne Einschränkung geändert werden können.

Du bestätigst hiermit auch, dass du diese Texte selbst geschrieben hast oder diese von einer gemeinfreien Quelle kopiert hast (weitere Einzelheiten unter Fachschaft Informatik:Urheberrechte). ÜBERTRAGE OHNE GENEHMIGUNG KEINE URHEBERRECHTLICH GESCHÜTZTEN INHALTE!

Bitte beantworte die folgende Frage, um diese Seite bearbeiten zu können (<a href="/Fachschaft/wiki/index.php?title=Special:Captcha/help" class="internal">weitere Informationen</a>):

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)