From 7915b3c60348e35e7f4c77820c15415edc2b6d96 Mon Sep 17 00:00:00 2001 From: morit02 <morit02@mi.fu-berlin.de> Date: Mon, 27 Nov 2023 22:11:16 +0100 Subject: [PATCH] Add: how to create basic snapshots --- README.md | 208 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 207 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 72f4fe6..b7d5971 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Zum anlegen von Git Repositories wird standardmäßig das **aktuelle Verzeichnis Um in einen bestimmten Verzeichnis ein Git Repository anzulegen kann der **Pfad** als weiterer **Parameter** angegeben werden. **Beispiel:** -Als Beispiel gibt es die folgende Verzeichnisstruktur, wobei das aktuelle Verzeichnis mit einem **\*** makiert ist: +Als Beispiel gibt es die folgende Verzeichnisstruktur, wobei das aktuelle Verzeichnis mit einem **\*** markiert ist: <table> <tr> @@ -56,6 +56,212 @@ git init +## Änderungen speichern +Das **Hinzufügen** von Dateien/Verzeichnissen erfolgt in **zwei Schritten**. +1. Dokumente/Verzeichnisse zum **Staging-Bereich** (staging area) hinzufügen +1. Dokumente/Verzeichnisse des **Staging-Bereichs** als neue Version speichern (**Commit** als neue Projektversion) + + +### Staging-Bereich +Der Staging-Bereich dient als **Sammlung** von Dokumenten/Verzeichnissen deren **Veränderungen** gespeichert werden sollen. + +Dokumente/Verzeichnisse befinden sich **nicht** automatisch im Staging-Bereich. +Es müssen also alle Dokumente/Verzeichnisse **explizit** zum **Staging-Bereich** **hinzugefügt** werden. + +Dokumtente/Verzeichnisse können mit `git add <file/directory>` oder `git stage <file/directory>` zum **Staging-Bereich hinzugefügt** werden. + + +Dokumente/Verzeichnisse können mit `git rm <file/directory>` wieder aus dem **Staging-Bereich entfernt** werden. + + +**Beispiel:** +- In dem Beispiel wurden bereits Dokumente/Verzeichnisse zum Staging-Bereich hinzugefügt +- Dokumente/Verzeichnisse die sich im **Staging-Bereich befinden** sind mit einem **(+)** markiert + +<table> +<tr> +<th> Dokumente/Verzeichnisse </th> +<th> Git Befehl - Staging von Dokumenten/Verzeichnissen </th> +<th> Git Befehl - Unstaging von Dokumenten/Verzeichnissen </th> +</tr> + +<td> + +``` +~/DIRECTORY_1 (+) +~/DIRECTORY_2 +~/file_1.txt (+) +~/file_2.txt +``` +</td> + +<!--- Staging Table --> +<td> +<table> +<tr> +<td> + +- Staging DIRECTORY_2 + +``` +git add DIRECTORY_2 +``` +</td> + +<td> + +- Staging file_2.txt + +``` +git add file_2.txt +``` +</td> +</tr> + +<tr> +<td> + +- Resultat: + +``` +~/DIRECTORY_1 (+) +~/DIRECTORY_2 (+) +~/file_1.txt (+) +~/file_2.txt +``` +</td> + +<td> + +- Resultat: + +``` +~/DIRECTORY_1 (+) +~/DIRECTORY_2 +~/file_1.txt (+) +~/file_2.txt (+) +``` +</td> +</tr> +</table> +</td> + + +<!--- Unstaging Table --> +<td> +<table> +<tr> +<td> + +- Unstaging DIRECTORY_1 + +``` +git rm DIRECTORY_1 +``` +</td> + +<td> + +- Unstaging file_1.txt + +``` +git rm file_1.txt +``` +</td> +</tr> + +<tr> +<td> + +- Resultat: + +``` +~/DIRECTORY_1 +~/DIRECTORY_2 +~/file_1.txt (+) +~/file_2.txt +``` +</td> + +<td> + +- Resultat: + +``` +~/DIRECTORY_1 (+) +~/DIRECTORY_2 +~/file_1.txt +~/file_2.txt +``` +</td> +</tr> +</table> +</td> +</table> + + +### Projektversion anlegen +Eine neue **Projektversion** wird mithilfe der Dokumente/Verzeichnisse, die sich im **Staging-Bereich** befinden, erstellt. +Dokumente/Verzeichnisse die sich **nicht** im **Staging-Bereich** befinden werden **nicht** für die neue **Projektversion** verwendet. + +Eine neue **Projektversion** wird nur im **lokalen Repository** erstellt! + +Eine **Projektversion** wird in **Git**: ***Commit*** genannt und kann mit `git commit -m "commit message"` erstellt werden. +Mit dem **Parameter** `-m` kann ein Text für den **aktuellen Commit** (die neue Projektversion) gespeichert werden. + +Dokumente/Verzeichnisse die mit einem ***Commit*** als neue Projektversion gespeichert werden, werden **automatisch** wieder aus dem **Staging-Bereich entfernt**. + +**Beispiel:** +- In dem Beispiel wurden bereits Dokumente/Verzeichnisse zum Staging-Bereich hinzugefügt. +- Dokumente/Verzeichnisse die sich im **Staging-Bereich** befinden sind mit einem **(+)** markiert + +<table> +<tr> +<th> Dokumente/Verzeichnisse </th> +<th> Git Befehl - Erstellen eines Commits (neue Projektversion erstellen) </th> +</tr> + +<td> + +``` +~/DIRECTORY_1 (+) +~/DIRECTORY_2 +~/file_1.txt (+) +~/file_2.txt +``` +</td> + +<!--- Commit Table --> +<td> +<table> +<tr> +<td> + +- **Commit** alle Dokumente/Verzeichnisse im Staging-Bereich +``` +git commit -m "Add files/directories" +``` +</td> +</tr> + +<tr> +<td> + +- Resultat: +``` +~/DIRECTORY_1 +~/DIRECTORY_2 +~/file_1.txt +~/file_2.txt +``` +</td> +</tr> +</table> +</td> +</table> + + + ## Add your files - [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files -- GitLab