faecher:informatik:oberstufe:git:erstes_repo:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
faecher:informatik:oberstufe:git:erstes_repo:start [28.04.2021 15:26] sbelfaecher:informatik:oberstufe:git:erstes_repo:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
-===== Ein erstes Repo ===== 
  
-===== Initialisieren ===== 
- 
-Wir wollen zunächst eine kleine statische Webseite entwickeln und unter Versionskontrolle stellen. 
- 
-<code> 
-$ mkdir webseite 
-$ cd webseite 
-$ git init 
-Leeres Git-Repository in /home/frank/Downloads/webseite/.git/ initialisiert 
-</code> 
- 
-Nun steht das Verzeichnis ''webseite'' unter Versionskontrolle. Das (lokale) Git-Repository befindet sich im Unterverzeichnis ''.git'': 
- 
-<code> 
-$ ls -la  
-insgesamt 132 
-drwxr-xr-x  3 frank frank   4096 24. Okt 13:32 . 
-drwxr-xr-x 21 frank frank 122880 24. Okt 13:32 .. 
-drwxr-xr-x  7 frank frank   4096 24. Okt 13:32 .git 
-</code> 
- 
-===== Grundkonfiguration ===== 
- 
-Bevor man sinnvoll mit Git arbeiten kann, sollte man zunächst seinen Namen und seine Mailadresse korrekt einstellen: 
- 
-<code> 
-git config user.email "meine@mail.adresse.hier" 
-git config user.name "John Doe" 
-</code> 
- 
-Diese Befehle speichern die Einstellungen nur für das Repository, in dem wir gerade arbeiten, wenn man die Einstellungen für alle Repos auf einem Rechner vornehmen möchte, muss man das Flag ''%%--%%global'' ergänzen. 
- 
-Gespeichert werden die für ein Repository geltenden lokalen Einstellungen in der Datei ''.git/config'': 
- 
-<code bash> 
-[frank@rita webseite]$ git config  user.name "John Doe" 
-[frank@rita webseite]$ git config  user.email "john.doe@nirgends.nix" 
-[frank@rita webseite]$ cat .git/config  
-[core] 
- repositoryformatversion = 0 
- filemode = true 
- bare = false 
- logallrefupdates = true 
-[user] 
- name = John Doe 
- email = john.doe@nirgends.nix 
- 
-</code> 
- 
-===== Repository Status anzeigen lassen ===== 
- 
-Mit dem Befehl ''git status'' kann man sich den aktuellen Status des Repos anzeigen lassen: 
- 
-<code bash> 
-[frank@rita webseite]$ git status 
-Auf Branch main 
- 
-Noch keine Commits 
- 
-nichts zu committen (erstellen/kopieren Sie Dateien und benutzen 
-Sie "git add" zum Versionieren) 
-</code> 
- 
- 
-===== Ein erster Commit ===== 
- 
-Um den git-Workflow zu verstehen, muss man drei Begriffe unterscheiden: Das Arbeitsverzeichnis ("Working Directory") den Index ("Staging Area") und das eigentliche Repository. 
- 
-  * **Arbeitsverzeichnis (Working Directory):** Das ist Verzeichnis, welches man zuvor mit ''git init'' unter Versionskontrolle gestellt hat mit allen seinen Dateien und Unterverzeichnissen, so wie man es auf der Festplatte vorfindet. Das "spezielle" Verzeichnis ''.git'' wird dabei ignoriert, es dient der internen Verwaltung der Abläufe durch git. 
-  * **Index ("Staging Area")**: Im Index werden zunächst alle Dateien eingetragen, die in einem nächsten Schritt zu einem Snapshot zusammengefasst und im Repository gespeichert werden sollen. Der Sinn des Indes erschließt sich nicht unmittelbar, da man dazu neigt, sich vorzustellen, dass man nacheinander Änderungen in deinem Arbeitsverzeichnis vornimmt und dabei von Zeit zu Zeit einfach Snapshots des gesamten Arbeitsverzeichnisses anlegt - das trifft aber nicht zu. Es gibt zahlreiche Anwendungsfälle, bei denen man nicht alle Änderungen des Arbeitsverzeichnisses in einem Snapshot festhalten möchte, sondern z.B. auf mehrere Snapshots aufteilen will. Außerdem kommt es häufig vor, dass sich im Arbeitsverzeichnis Dateien befinden, die man gar nicht unter Versionskontrolle stellen möchte, beispielsweise Compilate von Java Programmen (class-Dateien).  
-  * **Repository:** Wenn man im Index alle Dateien für den nächsten Snapshot zusammengestellt hat, kann man einen neuen Snapshot erstellen. Ein solcher Snapshot heißt **Commit** und wird durch eine Hashsumme identifiziert, außerdem werden Metainformationen wie Zeit und Name des Commiters festgehalten. Ein Commit wird mit dem Befehl ''git commit'' durchgeführt. Nach einem Commit ist der Index stets leer, da ja alle Änderungen, die dort vorgemerkt waren, in den Snapshot überführt wurden. 
- 
- 
-{{ .:gitstagingcommit.png |}} 
- 
-  
-  * Neue Dateien befinden sich zunächst im Arbeitsverzeichnis und werden von git ignorIndex ("Staging Area")iert. Teste das mit ''git status''. 
-  * Mit dem Befehl ''git add'' wird eine Datei in gits "Staging Area" verschoben - das kann man sich vorstellen wie ein Einkaufswagen, in dem neue Dateien und Änderungen gesammelt werden, bis man zu einem Punkt kommt, den man sich "merken" möchte. Dann macht man einen "Commit". Füge die Datei ''index.html'' deiner Staging Area hinzu und kontrolliere das Ergebnis mit ''git status'' 
-  * Führe den Befehl ''git commit'' aus, gib eine Commit-Message an. 
-  * Überprüfe den Zustand von Arbeitsverzeichnis und Staging Area mit ''git status''. Schau dir die Liste deiner Commits mit ''git log'' an. 
- 
- 
-Lege nun eine ''index.html'' Datei ein sowie zwei Verzeichnisse - ''css'' und ''img'': 
- 
- 
- 
-<code> 
-sbel@r107-ws15:~/git$ touch index.html 
-sbel@r107-ws15:~/git$ mkdir css 
-sbel@r107-ws15:~/git$ mkdir img 
-sbel@r107-ws15:~/git$ ls 
-css  img  index.html 
-</code> 
  • faecher/informatik/oberstufe/git/erstes_repo/start.1619616376.txt.gz
  • Zuletzt geändert: 28.04.2021 15:26
  • von sbel