Git-Server, Git for Windows und QT Creator verbinden

Hier eine kurze Anleitung in der ein Git-Server aufgesetzt wird auf einem Server, dann „Git for Windows“ installiert und Git in QT Creator integriert wird.

Anleitung Server

Git installieren und konfigurieren

apt install git
adduser git

#Ein Kennwort festlegen, oder einfach Enter drücken

cd /home/git
su git
mkdir .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
mkdir git-shell-commands
cd git-shell-commands
cat > help << EOF
#!/bin/sh
if tty -s
then
echo
echo "fatal: What do you think I am? A shell?"
echo "type 'exit' to leave."
fi
EOF
chmod u+x help
exit
#Jetzt wieder als root:
usermod -s /usr/bin/git-shell git

Test-Repository

su git -s /bin/bash
#jetzt ist man wieder Benutzer "git" und muss keine Rechte bzw. Besitzer anpassen. Wenn man das hier als "root" machen würde, müsste man danach den Besitzer auf "git ändern:
(chown git: *.git/* -R ;chown git: *.git/.* -R)
mkdir testrepo.git
cd testrepo.git
git ––bare init

Ausserdem noch ein weiteres Repository für z.B. QtCreator erstellen

mkdir /home/git/qt.git
cd /home/git/qt.git
git ––bare init

Repository testen

Folgendes unter „git bash“ unter Windows oder direkt auf der Linux Kommandozeile:

git clone ssh://git@$IP-ADRESSE/~/testrepo.git
cd testrepo
echo "Das wird der erste Commit" > testdatei
git add testdatei
git commit -am "Erster Commit"
git push origin master

Unter Windows

Git for Windows

von https://gitforwindows.org/ runterladen
Ich mag es, div. Tools von Linux unter Windows zu haben.
Dazu bei der Installation folgende Einstellungen machen (wo nix dabei steht, ist der Standardwert genommen worden)

  • „Use nano as the default editor“
  • „Use Git and optional Unix tools from the command prompt“
  • „Enable symbolic links“ (k.A. was das tut, hört sich aber gut an…)

Am Ende das „Git bash“ öffnen

Git GUI

Das „Git GUI“ im Startmenü öffnen.
Im Fenster dann unter „Hilfe“ (Help) „Show SSH Key“ wählen.
Da es wahrscheinlich noch keinen SSH Key gibt, diesen mittels „Generate Key“ erstellen.
Ich mache dies ohne Passwort.
Danach den generierten Schlüssel kopieren.

Git bash

Um den gerade generierten Benutzer-SSH Schlüssel in die authorized_keys einzutragen, loggt man sich als „root“ auf dem Server nochmal ein.
Dann:
nano /home/git/.ssh/authorized_keys
und den kopierten SSH-Schlüssel eintragen.
Ctrl-o, <enter>, Ctrl-x

Ausloggen und testen, ob jetzt ohne Passwortabfrage ein Einloggen für den Benutzer „git“ möglich ist:

ssh git@$IP-ADRESSE
Dann sollte direkt, ohne Passwortabfrage, folgende Meldung kommen:
"fatal: What do you think I am? A shell?"
Dies mit "exit" verlassen.

Die Altdaten übernehmen

Die bisherigen Projektdateien von QtCreator liegen z.B. unter c:\Users\Udo\Documents.
Da in „Git Bash“ hin wechseln.
Jetzt da das lokale Repository erstellen:

git init
git add *
git config ––global user.name "Bob Ross"
git config ––global user.email bross@example.zzz
git commit
git remote add origin git@IP-ADRESSE:/home/git/qt.git
git push ––set-upstream origin master

Konfiguration in QtCreator

Unterhalb von Extras-> Einstellungen gibt es die „Versionskontrolle“.
Da auf den Reiter „git“ wechseln.
In „Git Bash“ folgendes eingeben:
echo $PATH
Das da ausgegebene oben in das Feld „Path voranstellen“ einfügen.
Das „Tools“ Menü, so es denn so heisst, ist das Feld unterhalb des Knopfes „Bearbeiten“. Da steht meist „Projekte“, darunter gibt es aber auch „Git Branches“
Dorthin wechseln.
Dann mit dem „+“ das lokale Repository wählen. Das haben wir hier drüber angelegt – den Pfad auswählen.

Veränderte Dateien eingeben

Unterhalb von Extras gibt es jetzt (sonst ggf. QtCreator neu starten) den Reiter „Git“.
Dort dann unterhalb von „Lokales Repository“ auf „Commit“ gehen. Oder auch unterhalb von „Remote Repository“.
Aber eine Git-Erklärung kann das hier nicht auch noch sein… 😉

Schon fertig….