Grundlagen Digital Engineering SW4 (HSLU Hochschule) PDF

Document Details

PeerlessConnemara5888

Uploaded by PeerlessConnemara5888

Hochschule Luzern

2024

HSLU Hochschule

Tags

git git_repository gitlab software_engineering

Summary

These are lecture slides on Grundlagen Digital Engineering SW4, covering how to set up GitLab and configure SSH access for the platform. The slides were presented on 10.10.2024.

Full Transcript

Grundlagen Digital Engineering SW4 10.10.2024 TA.BA_GRUNDING.H24, SW4, Folie 1, 10.10.2024 Einrichten von GitLab TA.BA_GRUNDING.H24, SW4, Folie 2, 10.10.2024...

Grundlagen Digital Engineering SW4 10.10.2024 TA.BA_GRUNDING.H24, SW4, Folie 1, 10.10.2024 Einrichten von GitLab TA.BA_GRUNDING.H24, SW4, Folie 2, 10.10.2024 10.10.2024 Schlüsselpaar für SSH Authentication erzeugen (1/2) Zuerst wird im Homeverzeichnis ein Unterverzeichnis mit dem Namen.ssh erzeugt, falls es nicht bereits vorhanden ist: mkdir ~/.ssh Anschliessend wird die Berechtigung so angepasst, dass nur der eigene Benutzer Zugriff auf dieses Verzeichnis hat: chmod 700 ~/.ssh Im nächsten Schritt wird ein Schlüsselpaar, bestehend aus einen privaten und öffentlichen Schüssel, im vorher erzeugten Verzeichnis erstellt: ssh-keygen -t ed25519 -f ~/.ssh/gitKey Der private Schlüssel wird nicht mit einem Passwort geschützt (Zweimal mit bestätigen) TA.BA_GRUNDING.H24, SW4, Folie 3, 10.10.2024 Schlüsselpaar für SSH Authentication erzeugen (2/2) pi@eee-00143:~ $ ssh-keygen -t ed25519 -f ~/.ssh/gitKey Generating public/private ed25519 key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/pi/.ssh/gitKey Your public key has been saved in /home/pi/.ssh/gitKey.pub The key fingerprint is: SHA256:AuOimT81w7IXz9r/01g4bstESdBhIS1gsp3spgas0nU pi@eee-00143 The key’s randomart image is: +--[ED25519 256]--+ |. o.oo+o | | *..+o | | + +.. | |.. +.. | | +.o E S o. | | *.+*+..o. | |*.+o*..= | |..o...o o=. | |.o.....o+o | +----[SHA256]-----+ pi@eee-00143:~ $ TA.BA_GRUNDING.H24, SW4, Folie 4, 10.10.2024 Öffentlicher Schlüssel zu Gitlab Repository hinzufügen (1/4) Nach dem Login bei gitlab zum Benutzerkonto wechseln: TA.BA_GRUNDING.H24, SW4, Folie 5, 10.10.2024 Öffentlicher Schlüssel zu Gitlab Repository hinzufügen (2/4) Anschliessend die Einstellungen (Preferences) öffnen: TA.BA_GRUNDING.H24, SW4, Folie 6, 10.10.2024 Öffentlicher Schlüssel zu Gitlab Repository hinzufügen (3/4) Bei den Einstellungen den Punkt SSH wählen und anschliessend einen neuen Schüssel hinzufügen: Den öffentlichen Schlüssel (Dateiendung.pub) per Copy-Paste einfügen TA.BA_GRUNDING.H24, SW4, Folie 7, 10.10.2024 Öffentlicher Schlüssel zu Gitlab Repository hinzufügen (4/4) TA.BA_GRUNDING.H24, SW4, Folie 8, 10.10.2024 SSH Zugang mit privatem Schlüssel einrichten (1/4) Anleitung für Windows: 1. Auf dem Host im Home-Verzeichnis ein Verzeichnis mit dem Namen.ssh erstellen. mkdir "%USERPROFILE%"\\.ssh" 2. Falls nicht vorhanden, den privaten Schlüssel in dieses Verzeichnis kopieren 3. Im.ssh Verzeichnis folgenden Konfigurationseintrag in der Datei mit dem Namen config (ohne Dateiendung) ergänzen bzw. Datei erstellen: Host gitlab.switch.ch HostName gitlab.switch.ch User git IdentityFile C:\Users\\.ssh\gitKey durch den eigenen Benutzernamen ersetzen (Überprüfen mit dem Windows Explorer) TA.BA_GRUNDING.H24, SW4, Folie 9, 10.10.2024 SSH Zugang mit privatem Schlüssel einrichten (2/4) Mit dem folgenden Befehle kann die Verbindung zum gitlab Server geprüft werden: ssh gitlab.switch.ch Falls alles richtig konfiguriert wurde, erscheint folgende Ausgabe: C:\Users\zajost>ssh gitlab.switch.ch PTY allocation request failed on channel 0 Welcome to GitLab, @christian.jost! Connection to gitlab.switch.ch closed. Info: Beim ersten Verbindungsaufbau die Sicherheitswarnung mit ’yes’ bestätigen. Achtung: Schlägt der Verbindungsaufbau mit einer Sicherheitswarnung fehl, so muss der be- stehende Eintrag in der Datei known_hosts entfernt werden. Alternativ kann auch die gesamte Datei gelöscht werden. Sie wird automatisch neu erstellt. TA.BA_GRUNDING.H24, SW4, Folie 10, 10.10.2024 SSH Zugang mit privatem Schlüssel einrichten (3/4) Anleitung für Linux / MacOS: 1. Auf dem Host im Home-Verzeichnis ein Verzeichnis mit dem Namen.ssh erstellen und Berechtigung anpassen: mkdir ~/.ssh chmod 700 ~/.ssh 2. Privaten Schlüssel in dieses Verzeichnis kopieren und Berechtigung anpassen: chmod 600 ~/.ssh/gitKey 3. Im.ssh Verzeichnis folgenden Konfigurationseintrag in der Datei mit dem Namen config (ohne Dateiendung) ergänzen bzw. Datei erstellen: Host gitlab.switch.ch HostName gitlab.switch.ch User git IdentityFile ~/.ssh/gitKey TA.BA_GRUNDING.H24, SW4, Folie 11, 10.10.2024 SSH Zugang mit privatem Schlüssel einrichten (4/4) Mit dem folgenden Befehle kann die Verbindung zum gitlab Server geprüft werden: ssh gitlab.switch.ch Falls alles richtig konfiguriert wurde, erscheint folgende Ausgabe: pi@eee-00143:~/.ssh $ ssh gitlab.switch.ch PTY allocation request failed on channel 0 Welcome to GitLab, @christian.jost! Connection to gitlab.switch.ch closed. Info: Beim ersten Verbindungsaufbau die Sicherheitswarnung mit ’yes’ bestätigen. Achtung: Schlägt der Verbindungsaufbau mit einer Sicherheitswarnung fehl, so muss der be- stehende Eintrag in der Datei known_hosts entfernt werden. Alternativ kann auch die gesamte Datei gelöscht werden. Sie wird automatisch neu erstellt. TA.BA_GRUNDING.H24, SW4, Folie 12, 10.10.2024 Repository klonen (git clone) Mit dem folgenden Befehl kann ein Git Repository geklont werden: git clone git@repoURL Es wird ein Unterverzeichnis mit dem Namen des Repositories erstellt und dort alle Dateien abgelegt. Beispiel: pi@eee-00143:~ $ git clone [email protected]:hslu/edu/.../grundig/gitdemo.git Cloning into ’gitdemo’... remote: Enumerating objects: 11, done. remote: Counting objects: 100% (11/11), done. remote: Compressing objects: 100% (8/8), done. remote: Total 11 (delta 3), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (11/11), done. Resolving deltas: 100% (3/3), done. TA.BA_GRUNDING.H24, SW4, Folie 13, 10.10.2024 Arbeiten mit zentralem Repository TA.BA_GRUNDING.H24, SW4, Folie 14, 10.10.2024 Änderungen vom zentralen Repository holen: fetch/merge (1/12) Lokales Repository und das zentrale (Remote) Repository sind nicht miteinander verbunden. TA.BA_GRUNDING.H24, SW4, Folie 15, 10.10.2024 Änderungen vom zentralen Repository holen: fetch/merge (2/12) Ein Commit im Remote Repository hat keinen Einfluss auf das lokale Repository. TA.BA_GRUNDING.H24, SW4, Folie 16, 10.10.2024 Änderungen vom zentralen Repository holen: fetch/merge (3/12) git fetch übernimmt die Änderungen vom Remote Repo ins lokale Repo. Das Arbeitsverzeichnis wird nicht aktualisiert da main noch immer auf A zeigt. TA.BA_GRUNDING.H24, SW4, Folie 17, 10.10.2024 Änderungen vom zentralen Repository holen: fetch/merge (4/12) git merge origin/main führt main und origin/main zusammen und aktualisiert das Arbeitsverzeichnis. Es entsteht ein linearer Pfad. TA.BA_GRUNDING.H24, SW4, Folie 18, 10.10.2024 Änderungen vom zentralen Repository holen: pull (5/12) Statt fetch und merge kann auch der kombinierte Befehl pull verwendet werden. TA.BA_GRUNDING.H24, SW4, Folie 19, 10.10.2024 Änderungen vom zentralen Repository holen: pull (6/12) Lokal und Remote wurde ein Commit getätigt. TA.BA_GRUNDING.H24, SW4, Folie 20, 10.10.2024 Änderungen vom zentralen Repository holen: pull (7/12) Mit git pull werden die Änderungen von Remote geholt aber die Branches gehen nun auseinander. TA.BA_GRUNDING.H24, SW4, Folie 21, 10.10.2024 Änderungen vom zentralen Repository holen: pull (8/12) Git fügt die beiden Branches B und C zusammen und erstellt einen Branch M (merged): 3-Way Merge TA.BA_GRUNDING.H24, SW4, Folie 22, 10.10.2024 Änderungen vom zentralen Repository holen: pull (9/12) Alternativ kann mit dem Befehl git pull -rebase ein linearer Branch erzeugt werden. TA.BA_GRUNDING.H24, SW4, Folie 23, 10.10.2024 Änderungen vom zentralen Repository holen: pull (10/12) Der eigene Commit B wird mit dem Commit C zusammengefügt. TA.BA_GRUNDING.H24, SW4, Folie 24, 10.10.2024 Änderungen vom zentralen Repository holen: pull (11/12) Und es entsteht ein linearer Verlauf. TA.BA_GRUNDING.H24, SW4, Folie 25, 10.10.2024 Änderungen vom zentralen Repository holen: pull (12/12) Änderungen im zentralen Repository werden mit dem folgenden Befehle ins lokale Repository übernommen git pull Beispiel: pi@eee-00143:~/gitdemo $ git pull remote: Enumerating objects: 9, done. remote: Counting objects: 100% (8/8), done. remote: Compressing objects: 100% (4/4), done. remote: Total 5 (delta 2), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (5/5), 552 bytes | 184.00 KiB/s, done. From gitlab.switch.ch:hslu/edu/.../grundig/gitdemo a01f925..3f2ba0e main -> origin/main Updating a01f925..3f2ba0e Fast-forward file2.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) TA.BA_GRUNDING.H24, SW4, Folie 26, 10.10.2024 Änderungen ins Repository übertragen: push (1/7) Im lokalen Repository gibt es einen Commit C, der im Remote Repository noch nicht vorhanden ist. TA.BA_GRUNDING.H24, SW4, Folie 27, 10.10.2024 Änderungen ins Repository übertragen: push (2/7) Mit git push kann der Commit C zum Remote Repository übertragen werden. Der main Branch wird nachgeführt. TA.BA_GRUNDING.H24, SW4, Folie 28, 10.10.2024 Änderungen ins Repository übertragen: push (3/7) Am Schluss wird im lokalen Repository origin/main ebenfalls nachgeführt. TA.BA_GRUNDING.H24, SW4, Folie 29, 10.10.2024 Änderungen ins Repository übertragen: push (4/7) Wurden zwischenzeitlich Commits im Remote Repository getätigt, so schlägt der push Befehl fehl. TA.BA_GRUNDING.H24, SW4, Folie 30, 10.10.2024 Änderungen ins Repository übertragen: push (5/7) In diesem Fall müssen die Änderungen (D) vom Remote Repository mittels git pull zuerst ins lokale Repository übernommen werden. TA.BA_GRUNDING.H24, SW4, Folie 31, 10.10.2024 Änderungen ins Repository übertragen: push (6/7) Anschliessend kann der neue Commit M (merge) ins Remote Repository übertragen werden. TA.BA_GRUNDING.H24, SW4, Folie 32, 10.10.2024 Änderungen ins Repository übertragen: push (7/7) Mit dem folgenden Befehl wird der lokale Zustand des Repositories ins zentrale Repository übertragen: git push Beispiel: pi@eee-00143:~/gitdemo $ git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 4 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 323 bytes | 80.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 To gitlab.switch.ch:hslu/edu/.../grundig/gitdemo.git 47ef3b7..a01f925 main -> main TA.BA_GRUNDING.H24, SW4, Folie 33, 10.10.2024

Use Quizgecko on...
Browser
Browser