Ein Git Repository einrichten

(Last Updated On: 21. Juni 2015)

In einem vergangenen Post habe ich Ihnen gezeigt, wie Sie ein Subversion-Repository aufsetzen.

In diesem post zeige ich Ihnen die einfache Variante, in der wir einfach nur git installieren. Dabei können alle User, die sich per Public Key Authentication SSH auf den Server verbinden können (also ihren öffentlichen Schlüssel auf dem Server abgelegt haben), mit dem git repository arbeiten.

In einem späteren Post zeige ich Ihnen, wie Sie mit gitolite auch Usern, die sich nicht per SSH auf den Server schalten können, Zugriff über einen Usernamen und Passwort gewähren können.

Git-Repository

Installation

sudo apt-get install git

wir erstellen einen user für git

adduser --system --shell /bin/bash --group --disabled-password --home /home/git git

Sie als REpositoryadministraotr müssen Sie dem User git ihren öffentlichen SSh-Schlüssel geben, damit Sie sich mit diesem als User git auf dem Server einloggen können. Wie das geht, habe ich Ihnen hier für Windows und hier für Linux gezeigt.  Sie haben den SChlüssel wahrscheinlich bereits  im Ordner /home/<ihr username>/.ssh. Kopieren Sie ihn nach /tmp/$(whoami).pub und außerdem nach /home/git/.ssh/authorized_keys und geben Sie dieser authorized-keys ownership für den user git

cp /home/<username>/.ssh/authorized_keys /tmp/($whoami).pub
cp /home/<username>/.ssh/authorized_keys /home/git/.ssh/authorized_keys
chown git /home/git/.ssh/auhtorized_keys
reload ssh

sie müssen jetzt testen, ob Sie sich von ihrem Desktop-Rechner aus als User git über ssh verbinden können. Wenn das nicht geht, müssen Sie vielleicht in der /etc/ssh/sshd_config den User git noch in der Option AllowUsers eintragen und danach noch mal ein reload ssh ausführen. ERst wenn das geht, können Sie weiter machen.

jetzt erstellen wir mal unser eigenes git repository. das machen wir auf dem Linux Server selbst

mkdir /source/
chown git.git /source
chmod 700 /source
cd /source/
git init --bare /source/testprojekt.git
chown -R git /source/testprojekt.git

Soeben wurde das Git Repository testprojekt angelegt. In diesem Repository befinden sich derzeit noch keine Dateien. Zum Testne des Repositories können Sie jetzt einfach eine Textdatei erstellen oder bereits Ihren Quellcode verwenden. Wir werden ihn im Folgenden entweder unter einem Linux-Desktop-Client oder unter einem Windows-Desktop-Client zum Repositorty hinzufügen.

Vorbereiten des Repositorys mit Linux Desktop Client

Wenn Sie Ihren Quellcode von einem Linux-Client aus verwlaten wollen, müssen Sie einige Vorbereitungen treffne. Damit das geht, müssen wir erst unsere .ssh/config editieren

Host githost
HostName git.host.de
Port <SSH-Port>
User root

Vorbereiten des Repositorys mit einem Windows-Cleint

wir brauchen folgende Tools:

installiert mysisgit mit folgenden Einstellungen

2015-05-19_11h11_07

2015-05-19_11h12_03

2015-05-19_11h13_26

2015-05-19_11h15_31

Jetzt müssen wir in den Systemumgebungsvaraibeln die Variable GIT_SSH=c:\<pfad\zur\>plink.exe setzen.

2015-05-19_11h17_55

Nun müssen wir sichergehen, dass der private Schlüssel, den wir auf unserem Windows Client beim Einrichten von Public Key Authentication über SSH erstellt haben, in der pageant.exe eingepflegt ist.

2015-05-19_11h19_29

Jetzt testet ihr, ob ihr euch weiterhin erstmal ganz normal per SSH mit dem User git auf den Server verbinden könnt. Solange ihr euch als User git noch nicht per putty auf den Server verbinden könnt, braucht ihr gar nicht erst weitermachen. Behebt erst dieses Problem. Möglciherweise ist der Public Key noch nicht i der Datei  /home/git/.ssh/authorized_keys oder die Datei authorized_keys hat kein chmod von 600 oder der Ordner .ssh hat kein chmod von 700? Möglciherweise steht der User git nicht in der Option AllowUsers innerhalb der /etc/ssh/sshd_config ?

Jetzt testen wir den Zugriff auf ggit. Geht dazu im Windows Explorer in das Verzeichnis, in welchem ihr eure putty.exe gespeichert habt, rechtsklickt auf einen leeren raum im Ordner und startet die Git Bash

2015-05-19_11h24_06

In der neuen git bash bewegn wir uns zu dem Ordner auf dem Windows-Desktop-Client, in dem wir unsere repositories in zukunft auschecken wollen und konfigurieren für unseren lokalen Windows Benutzer die Daten, die im git repository angezeigt werden sollen, wenn wir Dateien aus dem git repository bearbeiten / auschecken / einchecken usw..

git config --global user.name "<mein name>"
git config --global user.email"<meine email>"

Klonen des noch leeren Repositories

Egal ob Sie nun unter einem Linux- oder unter einem Windows-Desktop-Client arbeiten: Wir müssen erst das derzeit noch leere Repository einmal klonen über

git clone ssh://git@<FQDN>:<SSH Port>/source/testprojekt.git
#neuer Ordner testprojekt wird auf dem Client erstellt
cd testprojekt/

Jetzt fügen wir das test-Repository noch als remote reository hinzu

git remote add testprojekt ssh://git@<FQDN>:<POrt>/source/testprojekt.git

in der git bash führenw ir aus

git remote -v

dioe remote  repositories sollten entsprechend eingetragen sein. In der ersten Phase steht hierbei der Name des Repositorys. Dieser ist sehr wichtig für die folgenden Befehle.

wir holen uns nochmal den aktuellen inhalt der testing-repository

git fetch <Repository-Name - in unsreem Fall testprojekt>
git checkout
git merge
git remote -v

jetzt fügen wir auf unserem Windows/linux Client, auf welchem wir jetzt den Ordner testing haben sollten, eine neue Text-Datei test.txt mit beliebigem nihalt oder eben bereits einen produktiven Quellcode hinzu. Wir speichern die Datei und übertragen diese nun in unser git repository

Nun haben Sie Dateien in das Verzeichnis eingefügt, in welchem Sie künftig Ihren Quellcode auf dem Cleint bearbeiten wollen. Diese müssen Sie nun dem Repository hinzufügen. Dazu müssen Sie zunächst alle Dateien in dem Ordner in die Versionsverwaltung hinzufügen über git add und dann mögliche Ämnderungen an bereits existierenden Dateien commiten.

git status
git add *
git status
git commit -m "<Kommentar>"

jetzt müsste die auf dem Windows Cleint datei im git repository auf dem Linux Server angekommen sein. Prüfen könnt irh das, indem ihr das Repository mit git clone in einen anderen Ordner auf eurem Client klont, beispielsweise beim Windows-Client unter C:\Source\wololo. klont dort mit git clone das repository erneut rein und schaut, ob der Ordner testfolder und die datei test.txt dabei sind. Wenn das der fall ist, funktioniert git und ihr könnt es produktiv nutzen.

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

DaFRK

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

Das könnte Dich auch interessieren …

1 Antwort

  1. 27. Juli 2015

    […] auf diesem Blog behandle. In der Vergangenheit habe ich euch gezeigt, wie ihr ein Subversion- oder Git-Repository auf einem Linux-Server einrichtet und jeweils entweder von einem Linux- oder von einem […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.