Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:git:erstes_repo:start [29.10.2023 19:35] – Frank Schiebel | faecher:informatik:oberstufe:git:erstes_repo:start [05.03.2025 14:11] (aktuell) – [Initialisieren] Frank Schiebel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ===== Das erste Repo ===== | + | ===== Erste Schritte mit git===== |
===== Initialisieren ===== | ===== Initialisieren ===== | ||
- | Um die Abläufe und die Funktionsweise zu erproben, wollen wir zunächst ein Verzeichnis unter Versionskontrolle stellen, in dem wir ein Tagebuch anlegen. Wir erstellen also ein Verzeichnis '' | + | Um die Abläufe und die Funktionsweise zu erproben, wollen wir zunächst ein Verzeichnis unter Versionskontrolle stellen, in dem wir ein **Tagebuch** anlegen. Wir erstellen also ein Verzeichnis '' |
< | < | ||
- | frank@pike:~$ mkdir tagebuch | + | max@pc:~$ mkdir tagebuch |
- | frank@pike:~$ cd tagebuch/ | + | max@pc:~$ cd tagebuch/ |
- | frank@pike:~/tagebuch$ git init | + | max@pc:~$ git init |
- | Leeres Git-Repository in /home/frank/ | + | Leeres Git-Repository in /home/max/ |
</ | </ | ||
Zeile 17: | Zeile 17: | ||
$ ls -la | $ ls -la | ||
insgesamt 132 | insgesamt 132 | ||
- | drwxr-xr-x | + | drwxr-xr-x |
- | drwxr-xr-x 21 frank frank 122880 24. Okt 13:32 .. | + | drwxr-xr-x 21 max max 122880 24. Okt 13:32 .. |
- | drwxr-xr-x | + | drwxr-xr-x |
</ | </ | ||
===== Repository Status anzeigen lassen ===== | ===== Repository Status anzeigen lassen ===== | ||
+ | Das Verzeichnis '' | ||
- | Mit dem Befehl '' | + | Mit dem Befehl '' |
<code bash> | <code bash> | ||
- | frank@pike: | + | max@pc: |
Auf Branch main | Auf Branch main | ||
Zeile 35: | Zeile 36: | ||
Sie "git add" zum Versionieren) | Sie "git add" zum Versionieren) | ||
</ | </ | ||
+ | ((Bei älteren git-Versionen heißt der Hauptbranch, | ||
===== Ein erster Tagebucheintrag ===== | ===== Ein erster Tagebucheintrag ===== | ||
{{ : | {{ : | ||
- | Lege mit einem Texteditor((**Nicht** mit Word oder Writer!)) eine Datei '' | + | Lege mit einem Texteditor((**Nicht** mit Word oder Writer!)) eine Datei '' |
<code bash> | <code bash> | ||
- | frank@pike: | + | max@pc: |
- | frank@pike: | + | max@pc: |
Ich habe gut geschlafen. | Ich habe gut geschlafen. | ||
Um 6:20 bin ich aufgestanden. | Um 6:20 bin ich aufgestanden. | ||
Zeile 65: | Zeile 66: | ||
<code bash> | <code bash> | ||
- | git status | + | max@pc: |
Auf Branch main | Auf Branch main | ||
Zeile 82: | Zeile 83: | ||
<code bash> | <code bash> | ||
- | frank@pike: | + | max@pc: |
- | frank@pike: | + | max@pc: |
Auf Branch main | Auf Branch main | ||
Zeile 95: | Zeile 96: | ||
{{ : | {{ : | ||
- | Wenn man mit den im Index vorgemerkten Änderungen zufrieden ist, macht man einen " | + | Wenn man mit den im Index vorgemerkten Änderungen zufrieden ist, macht man einen " |
- | + | ||
- | Mit dem Befehl | + | |
+ | Mit dem Befehl | ||
<code bash> | <code bash> | ||
- | frank@pike: | + | max@pc: |
- | [main (Root-Commit) | + | [main (Root-Commit) |
1 file changed, 2 insertions(+) | 1 file changed, 2 insertions(+) | ||
| | ||
Zeile 113: | Zeile 112: | ||
< | < | ||
- | frank@pike: | + | max@pc: |
Auf Branch main | Auf Branch main | ||
nichts zu committen, Arbeitsverzeichnis unverändert | nichts zu committen, Arbeitsverzeichnis unverändert | ||
Zeile 120: | Zeile 119: | ||
Man erkennt, dass der Index wieder leer ist (" | Man erkennt, dass der Index wieder leer ist (" | ||
- | Nun kann man weitere Änderungen im Tagebuch vornehmen und sich an allen wichtigen | + | Nun kann man weitere Änderungen im Tagebuch vornehmen und sich zu allen wichtigen |
===== Wir frühstücken ===== | ===== Wir frühstücken ===== | ||
Zeile 130: | Zeile 129: | ||
* Halte in der Datei '' | * Halte in der Datei '' | ||
* Kontrolliere mit '' | * Kontrolliere mit '' | ||
- | * Füge die Datei '' | + | * Füge die Datei '' |
* Erstelle einen Commit für das Frühstück. Vergiss nicht die Commit-Message nach der Option '' | * Erstelle einen Commit für das Frühstück. Vergiss nicht die Commit-Message nach der Option '' | ||
* Überprüfe den Zustand deines Repositorys. | * Überprüfe den Zustand deines Repositorys. | ||
+ | [[.loesung01|Lösung]] | ||
- | ===== Aufgaben ===== | + | Wir haben nun einen zweiten Commit erstellt: |
+ | {{ : | ||
+ | <callout type=" | ||
+ | Wir haben zwar nur die Datei '' | ||
+ | </ | ||
+ | Man kann sich einen Commit also wie im Bild dargestellt als Archivbox vorstellen, in dem jeweils der Zustand aller versionierten Dateien festgehalten ist. Ein Commit wird durch einen Hexadezimalen " | ||
- | Erkläre, was man machen muss, um von der derzeitigen Situation ausgehende, | + | Mit dem Befehl '' |
+ | |||
+ | <code bash> | ||
+ | max@pc: | ||
+ | commit f9353d6278296bd173d3760e3b95e743208650e7 (HEAD -> main) | ||
+ | Author: Max Mustermann < | ||
+ | Date: Wed Oct 2 08:58:45 2024 +0200 | ||
+ | |||
+ | Frühstück in Datei 'fruehstueck.txt' | ||
+ | |||
+ | commit 28ec5a71bc2bce75bbbbfe5f2d336fe49b3642fa | ||
+ | Author: Max Mustermann < | ||
+ | Date: Wed Oct 2 08:35:53 2024 +0200 | ||
+ | |||
+ | Erster Commit: aufstehen.txt angelegt | ||
+ | </ | ||
+ | Man erkennt hier auch, dass die eigentlichen Commit-Hashes sehr viel länger sind, als das Beispiel oben vermuten lässt, für die Identifizierung eines Commits reichen die ersten 7 Stellen des Hashes aus. | ||
+ | |||
+ | |||
+ | ===== Mittagessen ===== | ||
- | ---- | ||
{{: | {{: | ||
=== (A2) === | === (A2) === | ||
- | Lege ein Verzeichnis | + | * Füge deinem Tagebuch einen Eintrag |
+ | * Jetzt fällt dir ein, dass du zum Frühstück ein Stück Schokolade hattest, das du nicht notiert hattest. Ändere | ||
+ | * Überprüfe mit '' | ||
+ | |||
+ | Dein Repo sollte ungefähr so aussehen: | ||
<code bash> | <code bash> | ||
- | sbel@r107-ws15:~/git$ mkdir webseite | + | max@pc:~/tagebuch$ nano mittagessen.txt |
- | sbel@r107-ws15:~/git$ cd webseite | + | max@pc:~/tagebuch$ nano fruehstueck.txt |
- | sbel@r107-ws15:~/git/webseite$ touch index.html | + | max@pc:~/tagebuch$ |
- | sbel@r107-ws15:~/git/webseite$ mkdir css | + | Auf Branch main |
- | sbel@r107-ws15: | + | Änderungen, |
- | sbel@r107-ws15:~/ | + | (benutzen Sie "git add < |
- | css img index.html | + | |
+ | | ||
+ | |||
+ | Unversionierte Dateien: | ||
+ | | ||
+ | mittagessen.txt | ||
+ | |||
+ | keine Änderungen zum Commit vorgemerkt (benutzen Sie "git add" und/oder "git commit -a") | ||
</ | </ | ||
- | * Initialisisere das Verzeichnise '' | ||
- | * Lasse dir den Status des Repos anzeigen | ||
- | * Füge die Datei und die beiden Verzeichnisse dem Index hinzu und erstelle einen ersten Commit. Untersuche den Status deines Repos. Welche Beobachtung machst du hinsichtlich der beiden Verzeichnisse? | ||
- | Erstelle nun im Verzeichnis | + | Wir haben jetzt **zwei** Dinge geändert: |
+ | * In der Datei '' | ||
+ | * Die Datei '' | ||
- | <code css> | + | Wenn man nun den nächsten Commit vorbereitet, |
- | body { | + | |
- | color: #666; | + | |
- | } | + | |
- | h1 { | + | <code bash> |
- | color: green; | + | max@pc:~/tagebuch$ git add fruehstueck.txt |
- | text-decoration: underline; | + | max@pc:~/tagebuch$ git status |
- | } | + | Auf Branch main |
+ | Zum Commit vorgemerkte Änderungen: | ||
+ | (benutzen Sie "git restore --staged < | ||
+ | geändert: | ||
+ | Unversionierte Dateien: | ||
+ | (benutzen Sie "git add < | ||
+ | mittagessen.txt | ||
</ | </ | ||
- | Füge außerdem in die Datei '' | + | Jetzt haben wir die Änderungen von '' |
- | < | + | Der Status ist jetzt: |
- | < | + | < |
- | <html lang=" | + | max@pc: |
- | <head> | + | Auf Branch main |
- | <meta charset="utf-8"> | + | Unversionierte Dateien: |
- | <meta name=" | + | |
- | < | + | mittagessen.txt |
- | < | + | |
- | </ | + | nichts zum Commit vorgemerkt, aber es gibt unversionierte Dateien |
- | < | + | (benutzen Sie "git add" zum Versionieren) |
- | < | + | |
- | </ | + | |
- | </ | + | |
</ | </ | ||
- | Untersuche jetzt den Zustand deines Repos. | + | Für den nächsten Commit übernehmen wir jetzt die Datei '' |
- | + | <code bash> | |
- | Erstelle weiteren Commit, der die letzten Änderungen enthält. Was ist hierfür der Reihe nach zu tun? | + | git add mittagessen.txt |
+ | git commit -m " | ||
+ | </ | ||
- | Ändere weitere Teile deiner Webseite. Erstelle jeweils an sinnvollen Stellen weitere | + | <callout type=" |
+ | Wir haben jetzt gelernt, wie wir selektiv **Dateien** in einem Verzeichnis **unter Versionskontrolle** stellen können. Mit jedem Commit erzeugen wir einen **Snapshot** des Zustands, den die versionierten Dateien zum Zeitpunkt des Commits | ||
- | Betrachte | + | Als nächstes wollen wir uns ansehen, wie wir uns die **Versionsgeschichte** genauer ansehen können und in der Zeit zurückreisen und **ältere Versionen betrachten** können. |
+ | </ | ||
===== Material ===== | ===== Material ===== | ||
{{simplefilelist>: | {{simplefilelist>: |