Git-Präsentation für Jugendliche
Hier ist meine kleine Git-Präsentation, zurechtgeschnitten auf Jugendliche.
Download der Folien (pdf)
Download der Folien (zip mit odt)
Lizenz: CC BY-SA 4.0
Zugegeben, meine Notizen sind noch etwas unaufgeräumt.
Sie stehen hier, um Kontext für meine Folien zu geben.
Vorbereitung
- GitLab o.ä. öffnen
- schauen, dass Bildschirm präsentationsbereit
- neuen Ordner anlegen
- Editor öffnen
- light theme einstellen (für Beamer-Kontrast)
offene Punkte
- graphische Tools zeigen?
- auf cheat sheet hinweisen
- fehlt git push? pull?
Notizen für den Talk
Vorstellung, Thema
- nutze gern git für meine Projekte
- euch erklären
- wieso wir git überhaupt verwenden wollen
- was die wichtigsten Ideen und Befehle sind, um git zu bedienen
Begründung / Motivation
- ein Projekt = Dateien in einem Ordner
- mehrere Leute (USB-Stick / geteilter Ordner)
- Problem: gleichzeitig an der gleichen Datei, dann hochladen
- ⇒ Änderungen gehen verloren
- um das Problem zu lösen, wurde git entwickelt
- weitere praktische Verwendungen:
- mehrere Versionen (vereinen) (Bsp.)
- in der Zeit zurück gehen: nichts kaputt machen können
Analogie vorstellen (grob)
- Roboter, dem Befehle gegeben werden können
- Programm, dass ihr euch runterladen und installieren könnt... Mentor:innen mit euch
- ??? auf Webseite zeigen https://git-scm.com/downloads
Explorer
- hier liegen Dateien herum, meiner Webseite
- FOLIE: [Schrank]
Den Git-Roboter holen
- FOLIE [Schrank] =[Roboter]= “git init”
- FOLIE ?? Schrank ?? Roboter ?? “git status”
- ausprobieren...
Terminal
- "hier Befehle ausführen"
- git init, git status
Wie funktioniert git?
- FOLIE Foto
- Zwischenstände speichern
- “ein Foto von allen Dateien machen”
- bisschen komplizierter
- ich zeige euch, wie das geht
Wir wollen einen Zwischenstand speichern
- Roboter liest und verwaltet
- FOLIE Robotor hat ein Gehirn
- FOLIE [Schrank] —> [Roboter-Gehirn] “git add “datei” ” “git add .”
“git add” verwenden
Was kommt nach dem Merken?
- der Roboter hat sich’s nun gemerkt
- müssen das noch festschreiben
- dann können wir auch eine kleine Beschreibung für die Änderungen geben
Wie schreiben wir das fest?
- FOLIE Logbuch
- FOLIE git commit
- eventuell müssen wir noch einen Nutzer einstellen
git config user.name "Name"
git config user.email "email@example.com"
git commit -m "Nachricht"
Wie können wir feststellen, ob das geklappt hat?
- ins Logbuch schauen
- FOLIE: ?? [Logbuch] ??
git log
- bei jedem Eintrag die Nachricht, der Autor
Wie teile ich das mit anderen?
Wohin wird das gesendet?
- Computer im Internet, der das Teilen übernimmt
- im Web Repo erstellen (live)
- GitLab zeigen, GitHub erwähnen
- email von da soll die gleiche sein
- Befehl von da einfügen und erklären
git remote add origin https://..../projektname.git
git branch -M main
git push -uf origin main
Kollaboration
ich bin jemand anders
- möchte auch mitarbeiten
- FOLIE =[Schrank]= - =[Roboter]= - =Buch= - Internet
Pfeil von git clone “link” zu { über 3
- git clone zeigen
- git status
Ich möchte auch Änderungen machen
- Datei bearbeiten
- ❓ Was nun?
- Folie (gesamt): git add, git commit, git push (nach und nach einblenden)
- Schritte zeigen + Web
Ich (Person A) möchte auch die Änderungen erhalten
- nicht git clone
- FOLIE git pull [Schrank] - [Roboter] - Buch - Internet
Pfeil von git clone “link” zu { über 3
- git pull ausführen
- schauen, was sich geändert hat
Beide auf dem gleichen Stand
- git log anschauen
- FOLIE mit “A”: o-o “B” o-o
- das Internet ist auch auf dem gleichen Stand
Was passiert, wenn beide Änderungen machen?
Ich mache auch Änderungen
PERSON B macht Änderungen
- add, commit
- beide Personen haben nun jeweils einen neuen commit
- push
- hat geklappt
PERSON A
- will die Änderungen auch pushen
- “git push” ausführen
- Fehler! Wieso? ...
Vielleicht haben sich ja mehrere Dinge geändert
- ❓ Logbuch schauen
- git log
Was hat sich genau geändert?
- Folie +? bei Buch
- git diff commitname1 commitname2
Wir können uns auch anschauen, was sich
Tipps:
- Nachrichten im Infinitiv, Indikativ
- “Dieser Logbucheintrag/Commit wird...”
(vielleicht später noch "/" für Ordner erklären)
- Branches?
- FOLIEN Graphenvisualisierung
- FOLIE Zeitmaschine
Git Hub
Skizze:
Schrank: (Lokales) Repository
Roboter: Git-Roboter
Gedächtnis des Roboters (Staging Area)
Logbuch (Commit Tree)
Logbucheinträge (Commits)
Pfeile für add, commit -m
allgemein: git status, git log