From 1645161365dbd52d8a64fda5078692f2d07b4d61 Mon Sep 17 00:00:00 2001 From: morit02 <morit02@mi.fu-berlin.de> Date: Sat, 20 Jan 2024 20:15:00 +0100 Subject: [PATCH] Add how to edit/change the remote Repository --- README.md | 208 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 207 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b8fb6f6..5cea1bd 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,9 @@ Eine Tabelle zur Übersicht der verwendeten Befehle | `git checkout` | Zu einer anderen Branch wechseln | `git merge` | Zusammenführen von zwei Branches mit einem Merge-Commit | `git rebase` | Zusammenführen von zwei Branches durch anhängen der Commits +| `git clone` | Remote Repository lokal kopieren +| `git pull` | Lokales Repository mit Änderungen des remote Repository aktualisieren +| `git push` | Remote Repository mit Änderungen des lokalen Repository aktualisieren ## Projekterstellung @@ -871,11 +874,214 @@ Es gibt verschiedene **Sichtbarkeitsstufen** die für remote Repository festgele - **Public** (Alle Benutzer - ohne Authentifizierung) + +### Zusammenhang von remote und lokalen Repositories +Um Projekte Online unabhängig vom aktuellen Gerät zu speichern oder mit anderen Entwicklern an einem Projekt zu arbeiten, ist die Erstellung eines **remote Repository** sinnvoll. +Die verschiedenen Plattformen auf denen Git Projekte gespeichert werden dienen dabei vorallem als globaler Speicher/Zugriffsort.\ +Änderungen werden meistens in Entwicklungsumgebungen auf dem lokalen Gerät erstellt, indem das Projekt lokal kopiert und im Anschluss das remote Repository aktualisiert wird. +> Änderungen des remote Repository können auch über die Web-Anwendung erstellt werden + +**Schritte zum lokalen Bearbeiten eines remote Repository:** +1. **Kopieren oder Aktualisieren eines remote Repository** + > Falls das remote Repository bereits als **lokales Repositoy existiert**, ist es ausreichend das Repository zu **aktualisieren**. + > Ansonsten muss das remote Repository **kopiert** werden. + + - **Kopieren des remote Repository**\ + Durch das Kopieren entsteht ein **lokales Repository** mit dem aktuellen Stand des remote Repository + > Es gibt zwei Repository von dem Projekt: + > - Ein **remote Repository** (Online) + > - Ein **lokales Repository** (auf dem lokalen Gerät) + + Mit dem folgenden Befehl kann ein remote Repositoy kopiert werden: + ``` + git clone <URL des remote Repository> + ``` + + - **Aktualisieren des lokalen Repository**\ + **Änderungen** vom remote Repository müssen explizit zum lokalen Repository hinzugefügt werden + + Mit dem folgendem Befehl kann ein lokales Repository aktualisiert werden: + ``` + git pull + ``` + +2. **Bearbeiten des Projekts**\ + **Änderungen** des Projekts können am lokalen Repository durch `Commits` vorgenommen werden + > Die lokalen `Commits` sind nur im lokalen Repository verfügbar und müssen explizit zum remote Repository hinzugefügt werden! + +3. **Remote Repository aktualisieren**\ + Durch das aktualisieren des remote Repository mit dem lokalen Repository werden die lokalen `Commits` zum remote Repository hinzugefügt + + Mit dem folgenden Befehl können Änderungen vom lokalen zum remote Repository hinzugefügt werden: + ``` + git push origin <Branch des remote Repository> + ``` + +**Beispiel:** +- Commits werden mit c markiert + +<table> +<tr> +<th> Git Befehle - Bearbeiten eines Repository </th> +<th> Remote Repository (origin main) </th> +<th> Lokales Repository (main) </th> + +</tr> + +<tr> +<td> +</td> + + +<td> + +``` +c1 <- c2 +``` +</td> + +<td> +</td> +</tr> + +<tr> +<td> + +- Kopieren des remote Repository +``` +git clone <URL des remote Repository> +``` +</td> + + +<td> + +``` +c1 <- c2 +``` +</td> + + +<td> + +``` +c1 <- c2 +``` +</td> +</tr> + +<tr> +<td> + +- Änderungen zum lokalen Repository hinzufügen (*c3*) +``` +git commit +``` +</td> + + +<td> + +``` +c1 <- c2 +``` +</td> + + +<td> + +``` +c1 <- c2 <- c3 +``` +</td> +</tr> + +<tr> +<td> + +- Änderungen zum remote Repository hinzufügen +``` +git push origin main +``` +</td> + + +<td> + +``` +c1 <- c2 <- c3 +``` +</td> + + +<td> + +``` +c1 <- c2 <- c3 +``` +</td> +</tr> + +<tr> +<td> + +- Änderungen am remote Repository +> Durch andere Entwickler oder von einem anderem Gerät +</td> + + +<td> + +``` +c1 <- c2 <- c3 <- c4 +``` +</td> + + +<td> + +``` +c1 <- c2 <- c3 +``` +</td> +</tr> + +<tr> +<td> + +- Lokales Repository aktualisieren +``` +git pull origin main +``` +</td> + + +<td> + +``` +c1 <- c2 <- c3 <- c4 +``` +</td> + + +<td> + +``` +c1 <- c2 <- c3 <- c4 +``` +</td> +</tr> +</table> + + + + + + ### Nutzen eines remote Repository Falls ein Projekt als remote Repository **gespeichert** oder **öffentlich** zugänglich gemacht werden soll können folgende **Möglichkeiten** auftreten: - Ein [**lokales Verzeichnis**](#lokales-projekt) (Projekt) soll in einem remote Repository gespeichert werden - Ein [**lokales Git Repository**](#lokales-repository) soll in einem remote Repository gespeichert werden -- Ein **remote Repository** soll **lokal** bearbeitet/genutzt werden Für die Nutzung eines remote Repository muss dieses Repository erst erstellt werden. -- GitLab