faecher:informatik:oberstufe:git:erstes_repo:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:git:erstes_repo:start [29.10.2023 20:12] Frank Schiebelfaecher:informatik:oberstufe:git:erstes_repo:start [30.10.2023 09:30] (aktuell) – [Mittagessen] Frank Schiebel
Zeile 1: Zeile 1:
-===== Das erste Repo =====+===== Das erste Repo - Erste Schritte mit Git=====
  
 ===== Initialisieren ===== ===== Initialisieren =====
Zeile 41: Zeile 41:
 Lege mit einem Texteditor((**Nicht** mit Word oder Writer!)) eine Datei ''aufstehen.txt'' an. Du kannst in diese Datei z.B. hineinschreiben, wie du geschlafen hast und wann du aufgestanden bist. Das folgende Beispiel verwendet den Editor ''nano'' unter Linux, du kannst aber auch Notepad++ unter Windows oder Kate unter LInux verwenden, diese Editoren haben eine GUI. Wichtig ist, dass du die Datei im Verzeichnis ''tagebuch'' abspeicherst. Lege mit einem Texteditor((**Nicht** mit Word oder Writer!)) eine Datei ''aufstehen.txt'' an. Du kannst in diese Datei z.B. hineinschreiben, wie du geschlafen hast und wann du aufgestanden bist. Das folgende Beispiel verwendet den Editor ''nano'' unter Linux, du kannst aber auch Notepad++ unter Windows oder Kate unter LInux verwenden, diese Editoren haben eine GUI. Wichtig ist, dass du die Datei im Verzeichnis ''tagebuch'' abspeicherst.
  
-<code>+<code bash>
 frank@pike:~/tagebuch$ nano aufstehen.txt frank@pike:~/tagebuch$ nano aufstehen.txt
 frank@pike:~/tagebuch$ cat aufstehen.txt  frank@pike:~/tagebuch$ cat aufstehen.txt 
Zeile 93: Zeile 93:
 </code> </code>
  
-{{ :faecher:informatik:oberstufe:git:erstes_repo:git_add.drawio.png?400 |}}+{{ :faecher:informatik:oberstufe:git:erstes_repo:git_add.drawio.png?550 |}}
  
-Wenn man mit den im Index vorgemerkten Änderungen zufrieden ist, macht man einen "Commit". Mit dem Befehl  ''git commit -m "Erster Commit"'' legt man einen Commit mit einer Commit-Message an (Paramter ''-m''). Wenn man die Commit-Message nicht mit ''-m'' angibt, öffnet sich ein Editor, in dem man diese bearbeiten kann.+Wenn man mit den im Index vorgemerkten Änderungen zufrieden ist, macht man einen "Commit"((In unserem Beispiel ist das noch sinnlosweil wir derzeit ja nur eine Datei in unserem Tagebuch haben))
  
 +Mit dem Befehl  ''git commit -m "Erster Commit"'' legt man einen Commit mit einer Commit-Message an (Paramter ''-m''). Wenn man die Commit-Message nicht mit ''-m'' angibt, öffnet sich ein Editor, in dem man diese bearbeiten muss.
  
  
-<code bash> 
-[frank@rita webseite]$ git commit -m "Erster commit" 
-[main (Root-Commit) bb0d027] Erster commit 
- 1 file changed, 0 insertions(+), 0 deletions(-) 
- create mode 100644 index.html 
-[frank@rita webseite]$ git status 
-Auf Branch main 
-Unversionierte Dateien: 
-  (benutzen Sie "git add <Datei>...", um die Änderungen zum Commit vorzumerken) 
- style.css 
  
-nichts zum Commit vorgemerkt, aber es gibt unversionierte Dateien +<code bash> 
-(benutzen Sie "git addzum Versionieren)+frank@pike:~/tagebuch$ git commit -m "Aufstehen!" 
 +[main (Root-Commit9ee8f8b] Aufstehen! 
 + 1 file changed, 2 insertions(+) 
 + create mode 100644 aufstehen.txt
 </code> </code>
  
-Man erkennt, dass der Index wieder leer ist ("nichts zum Commit vorgemerkt") und die Datei ''style.css'' noch immer unversoniert ist.+{{ :faecher:informatik:oberstufe:git:erstes_repo:commit.drawio.png?550 |}}
  
-Die Liste deiner Commits kann man mit ''git log'' ansehen+Wenn man den Status des Arbeitsverzeichnisses jetzt erneut abfragt, erhält man folgende Ausgabe:
  
 <code> <code>
-[frank@rita webseite]$ git log +frank@pike:~/tagebuch$ git status 
-commit 893b24e60a391d2064ea37e61d4af0435bec4f7d (HEAD -> main) +Auf Branch main 
-Author: John Doe <john.doe@nirgends.nix> +nichts zu committen, Arbeitsverzeichnis unverändert 
-Date:   Wed Apr 28 20:16:28 2021 +0200+</code>
  
-    CSS hinzugefügt+Man erkennt, dass der Index wieder leer ist ("nichts zum Commit vorgemerkt").
  
-commit bb0d027bd6376da3d67c46bbeeb14e5fd1623581 +Nun kann man weitere Änderungen im Tagebuch vornehmen und  sich an allen wichtigen Stellen den Zustand der Dateien in einem Commit merken.
-Author: John Doe <john.doe@nirgends.nix> +
-Date:   Wed Apr 28 15:35:30 2021 +0200+
  
-    Erster commit+===== Wir frühstücken =====
  
-</code>+{{:aufgabe.png?nolink  |}}
  
 +=== (A1) ===
  
-===== Aufgaben =====+  * Halte in der Datei ''fruehstueck.txt'' fest, was es zum Frühstück gab. 
 +  * Kontrolliere mit ''git status'', dass es die Datei jetzt gibt, sie aber nicht unter Versionskontrolle steht. 
 +  * Füge die Datei ''fruehstuck.txt'' mit dem Befehl ''git add fuehstuck.txt'' zum Index hinzu. 
 +  * Erstelle einen Commit für das Frühstück. Vergiss nicht die Commit-Message nach der Option ''-m''
 +  * Überprüfe den Zustand deines Repositorys.
  
 +[[.loesung01|Lösung]]
  
-{{:aufgabe.png?nolink  |}}+Wir haben nur einen zweiten Commit erstellt:
  
-=== (A1) ===+{{ :faecher:informatik:oberstufe:git:erstes_repo:zweitercommit.drawio.png?550 |}}
  
-Erkläre, was man machen muss, um von der derzeitigen Situation ausgehende, die Datei ''style.css'' ebenfalls unter Versionskontrolle zu stellenWelche git Befehle würdest du verwenden?+<callout type="warning" title="Wichtig"> 
 +Wir haben zwar nur die Datei ''fruehstueck.txt'' zum Commit vorgemerkt und anschließend mit ''git commit'' "commited", **ein Commit beinhaltet jedoch stets den Zustand aller unter Versionskontrolle stehender Dateien im Arbeitsverzeichnis**, also in diesem Fall ist in unserem zweiten Commit auch die (unveränderte) Datei ''aufstehen.txt'' enthalten! 
 +</callout>
  
----- +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 "Hashwert" identifiziert, das ist gewissermaßen die eindeutige Nummer eines Commits, z.B. ''2c70b75''.
-{{:aufgabe.png?nolink  |}}+
  
-=== (A2) === +Mit dem Befehl ''git log'' kann man sich die Commits auflisten lassen
-Lege ein Verzeichnis ''webseite'' an,  erstelle dort die Dateien ''index.html'' Datei ein sowie zwei weitere Verzeichnisse - ''css'' und ''img'':+
  
-<code bash+<code> 
-sbel@r107-ws15:~/git$ mkdir webseite +frank@pike:~/tagebuch$ git log  
-sbel@r107-ws15:~/git$ cd webseite +commit 2c70b7517bcf0217c62b93336de038f166225c6a (HEAD -> main) 
-sbel@r107-ws15:~/git/webseite$ touch index.html +AuthorFrank Schiebel <codeberg@ua25.de> 
-sbel@r107-ws15:~/git/webseite$ mkdir css +Date:   Sun Oct 29 20:32:50 2023 +0100 
-sbel@r107-ws15:~/git/webseite$ mkdir img + 
-sbel@r107-ws15:~/git/webseite$ ls +    Fruestück 
-css  img  index.html+ 
 +commit 9ee8f8bfdd6c532fee7d693c9d4431e22f455f0d 
 +Author: Frank Schiebel <codeberg@ua25.de> 
 +Date  Sun Oct 29 20:14:11 2023 +0100 
 + 
 +    Aufstehen!
 </code> </code>
 +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.
  
-  * Initialisisere das Verzeichnise ''webseite'' als git-Repository. 
-  * 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 ''css'' eine Datei ''style.css'' mit dem folgenden Inhalt:+===== Mittagessen =====
  
-<code css> +{{:aufgabe.png?nolink  |}}
-body { +
-  color#666; +
-}+
  
-h1 {  +=== (A2) === 
- color: green; +  * Füge deinem Tagebuch einen Eintrag ''mittagessen.txt'' hinzu, zunächst ohne diese zu versionieren. 
- text-decoration: underline;  +  * Jetzt fällt dir ein, dass du zum Frühstück ein Stück Schokolade hattest, dass du  nicht notiert hattest. Ändere die Datei ''fruehstueck.txt'' ab, so dass die Schokolade dort vermerkt ist. 
-}+  * Überprüfe mit ''git status'' den Zustand deines Repositorys.
  
-</code>+Dein Repo sollte ungefähr so aussehen: 
 + 
 +<code bash> 
 +frank@pike:~/tagebuch$ vi mittagessen.txt 
 +frank@pike:~/tagebuch$ vi fruehstueck.txt  
 +frank@pike:~/tagebuch$ git status 
 +Auf Branch main 
 +Änderungen, die nicht zum Commit vorgemerkt sind: 
 +  (benutzen Sie "git add <Datei>...", um die Änderungen zum Commit vorzumerken) 
 +  (benutzen Sie "git restore <Datei>...", um die Änderungen im Arbeitsverzeichnis zu verwerfen) 
 +        geändert:       fruehstueck.txt 
 + 
 +Unversionierte Dateien: 
 +  (benutzen Sie "git add <Datei>...", um die Änderungen zum Commit vorzumerken) 
 +        mittagessen.txt
  
-Füge außerdem in die Datei ''index.html'' den folgenden Inhalt ein:+keine Änderungen zum Commit vorgemerkt (benutzen Sie "git add" und/oder "git commit -a")
  
-<code html> 
-<!DOCTYPE html> 
-<html lang="de"> 
-  <head> 
-    <meta charset="utf-8"> 
-    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
-    <link rel="stylesheet" type="text/css" href="css/style.css" media="screen" /> 
-    <title>Superwebseite!</title> 
-  </head> 
-  <body> 
-   <h1>Meine erste Webseite!</h1> 
-  </body> 
-</html> 
 </code> </code>
  
-Untersuche jetzt den Zustand deines Repos.  
  
-Erstelle weiteren Commit, der die letzten Änderungen enthältWas ist hierfür der Reihe nach zu tun?+Wir haben jetzt **zwei** Dinge geändert:  
 +  * In der Datei ''fruehstueck.txt'' haben wir eine Änderung vorgenommen. 
 +  * Die Datei ''mittagessen.txt'' haben wir neu hinzugefügt.
  
-Ändere weitere Teile deiner Webseite. Erstelle jeweils an sinnvollen Stellen weitere Commits mit entsprechenden Commit-Messages. 
  
-Betrachte die Ausgabe des Befehls ''git log'' 
  
 ===== Material ===== ===== Material =====
  
 {{simplefilelist>:faecher:informatik:oberstufe:git:erstes_repo:*}} {{simplefilelist>:faecher:informatik:oberstufe:git:erstes_repo:*}}
  • faecher/informatik/oberstufe/git/erstes_repo/start.1698606767.txt.gz
  • Zuletzt geändert: 29.10.2023 20:12
  • von Frank Schiebel