This commit is contained in:
Philippe Torrel
2026-09-02 11:13:15 +02:00
parent c1774746c9
commit 9308f282ad
10 changed files with 383 additions and 5 deletions

View File

@@ -0,0 +1,41 @@
# Einrichtung von Git
## Installation von gitscm (Git Bash)
[Git SCM](https://git-scm.com/)
Nachdem Git erfolgreich installiert wurde, muss es konfiguriert werden, bevor du es nutzen kannst. Dazu gehört die Einrichtung deines Benutzernamens und deiner E-Mail-Adresse, die bei jedem Commit verwendet werden, um zu kennzeichnen, wer die Änderungen vorgenommen hat.
### Benutzernamen konfigurieren
Gib im Terminal oder in der Eingabeaufforderung den folgenden Befehl ein, ersetze dabei Your Name durch deinen Namen:
```bash
git config --global user.name "Your Name"
```
Konfiguration des global verwendeten Git Nutzernamens mithilfe des Terminals
### E-Mail-Adresse konfigurieren
Gib den folgenden Befehl ein, um deine E-Mail-Adresse festzulegen, ersetze dabei your.email@example.com durch deine E-Mail-Adresse:
```bash
git config --global user.email "your.email@example.com"
```
Konfiguration der global verwendeten Git E-Mail-Adresse mithilfe des Terminals
### Konfiguration überprüfen
Überprüfe, ob die Konfiguration korrekt eingerichtet wurde:
```bash
git config --global --list
````
```bash
user.name=Your Name
user.email=your.email@example.com
```
Ausgabe der Git-Konfiguration mithilfe des Terminals.
Diese Ausgabe zeigt dir die aktuellen Einstellungen für deinen Git-Benutzernamen und deine E-Mail-Adresse an.
Um den git Modus zu verlassen verwende `:q`

Binary file not shown.

171
07_git/docs/git-project.md Normal file
View File

@@ -0,0 +1,171 @@
# Git Projektanweisung
1. **Projektordner vorbereiten & Git initialisieren:**
Erstelle das Verzeichnis, wechsle hinein, initialisiere das Repository direkt mit dem Standard-Branch `main` und stelle sicher, dass kein alter `master`-Branch existiert.
```bash
mkdir project-git
cd project-git
git init -b main
# Prüfung/Bereinigung falls 'master' noch existieren sollte:
git branch -d master 2>/dev/null || true
```
2. **README.md erstellen & committen:**
Erstelle die Datei mit der geforderten Überschrift und führe den initialen Commit auf `main` durch.
```bash
echo "# Implementierung eines Workflows" > README.md
git add README.md
git commit -m "docs: add initial README.md"
```
3. **Feature-Branches anlegen:**
Erstelle die beiden Branches `feature-1` und `feature-2` ausgehend vom aktuellen Stand auf `main`.
```bash
git branch feature-1
git branch feature-2
```
4. **Arbeiten auf feature-1 (2 Commits):**
Wechsle zu `feature-1`, erstelle `feature1.txt` und führe zwei getrennte Commits durch.
```bash
git checkout feature-1
# Commit 1
echo "Feature 1: Basis-Funktionalitaet" > feature1.txt
git add feature1.txt
git commit -m "feat: add feature1.txt with base logic"
# Commit 2
echo "Feature 1: Erweiterung" >> feature1.txt
git add feature1.txt
git commit -m "feat: extend feature1.txt functionality"
```
5. **Arbeiten auf feature-2 (2 Commits):**
Wechsle zu `feature-2`, erstelle `feature2.txt` und führe ebenfalls zwei Commits durch.
```bash
git checkout feature-2
# Commit 1
echo "Feature 2: Erste Implementierung" > feature2.txt
git add feature2.txt
git commit -m "feat: add feature2.txt with base logic"
# Commit 2
echo "Feature 2: Erweiterte Logik" >> feature2.txt
git add feature2.txt
git commit -m "feat: extend feature2.txt functionality"
```
6. **feature-1 mergen & Tag v1.1.0 setzen:**
Wechsle zurück auf `main`, führe den Merge für `feature-1` durch und tagge den ersten stabilen Zustand.
```bash
git checkout main
git merge feature-1 --no-edit
git tag v1.1.0
```
7. **feature-2 mergen & Tag v1.2.0 setzen:**
Merge `feature-2` in den `main`-Branch und setze den nächsten Versions-Tag.
```bash
git merge feature-2 --no-edit
git tag v1.2.0
```
8. **Gestagte und ungestagte Änderungen in feature-1 vornehmen:**
Wechsle zurück zu `feature-1`. Erzeuge eine gestagte sowie eine ungestagte Änderung und speichere den Status-Dump.
```bash
git checkout feature-1
# Gestagte Aenderung:
echo "Aenderung 1 (gestaged)" >> feature1.txt
git add feature1.txt
# Ungestagte Aenderung:
echo "Aenderung 2 (ungestaged)" >> feature1.txt
# Status in Datei schreiben:
git status > status.dump
```
9. **Änderungen stashen:**
Sichere alle Änderungen inklusive ungetrackter Dateien (`status.dump`) im Stash mit der geforderten Beschreibung.
```bash
git stash push -u -m "Stash 1: Hotfix needed"
```
10. **Hotfix-Branch erstellen, fixen & mergen:**
Zweige vom Tag `v1.2.0` ab, erstelle `stash.dump`, committe diesen Fix und merge alles in `main`.
```bash
# Hotfix-Branch von v1.2.0 erstellen:
git checkout -b hotfix v1.2.0
# Stash-Liste exportieren und committen:
git stash list > stash.dump
git add stash.dump
git commit -m "fix: resolve critical issue via stash inspection"
# In main mergen:
git checkout main
git merge hotfix --no-edit
```
11. **feature-1 fortsetzen, abschließen & v1.2.1 taggen:**
Kehre zu `feature-1` zurück, hole die Änderungen aus dem Stash, committe sie, merge den Branch in `main` und setze das finale Tag.
```bash
git checkout feature-1
git stash pop
# Alle wiederhergestellten Aenderungen committen:
git add .
git commit -m "feat: complete pending work on feature1"
# In main mergen und taggen:
git checkout main
git merge feature-1 --no-edit
git tag v1.2.1
```
---
Zur finalen Überprüfung der Tags und des Graphen:
```bash
git tag
git log --oneline --graph --all
```

View File

@@ -0,0 +1,69 @@
# Installation MacOS
1. **Neuen SSH-Key für GitHub generieren:** Separaten Key anlegen, damit Gitea unberührt bleibt.
Erstelle einen Key mit eigenem Dateinamen (z. B. `id_ed25519_github`):
```zsh
ssh-keygen -t ed25519 -C "deine_email@example.com" -f ~/.ssh/id_ed25519_github
```
2. **Key zum SSH-Agent / Keychain hinzufügen:** Schlüssel im macOS Schlüsselbund registrieren.
```zsh
ssh-add --apple-use-keychain ~/.ssh/id_ed25519_github
```
*(Unter Linux einfach `ssh-add ~/.ssh/id_ed25519_github` verwenden).*
3. **SSH-Config anpassen (~/.ssh/config):** Verknüpft Hosts mit den jeweiligen Keys.
Öffne deine SSH-Config:
```zsh
code ~/.ssh/config
```
Stelle sicher, dass beide Hosts sauber getrennt eingetragen sind:
```text
# Neuer GitHub-Key
Host github.com
HostName github.com
User git
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519_github
```
Speichere mit **Ctrl + O**, **Enter** und schließe mit **Ctrl + X**.
4. **Neuen Public Key auf GitHub hinterlegen:**
Kopiere den Public Key in die Zwischenablage:
```zsh
pbcopy < ~/.ssh/id_ed25519_github.pub
```
Füge ihn auf **github.com** unter **Settings****SSH and GPG keys****New SSH Key** ein.
5. **Verbindung testen & Repository klonen:**
Teste die Authentifizierung:
```zsh
ssh -T git@github.com
```
Sobald `Hi <Username>! You've successfully authenticated...` erscheint, klone das Repo erneut z.B.:
```zsh
git clone git@github.com:[REPO].git
```

Binary file not shown.

View File

@@ -0,0 +1,96 @@
# Installation Windows
Auf Windows entfallen die macOS-spezifischen Direktiven (`UseKeychain` und `AddKeysToAgent`), da die Verwaltung systemweit vom Windows **OpenSSH-Agent-Dienst** übernommen wird.
---
### Schritt-für-Schritt-Anleitung für Windows (PowerShell)
1. **OpenSSH-Dienst prüfen (einmalig als Admin):** Stellt sicher, dass Windows Keys dauerhaft im Speicher hält.
Falls noch nicht erledigt, öffne die **PowerShell als Administrator**:
```powershell
Set-Service -Name ssh-agent -StartupType Automatic
Start-Service ssh-agent
```
2. **Neuen SSH-Key für GitHub generieren:** Separaten Key anlegen, damit Gitea unberührt bleibt.
Führe in der normalen PowerShell aus:
```powershell
ssh-keygen -t ed25519 -C "deine_email@example.com" -f $HOME\.ssh\id_ed25519_github
```
* Vergib bei Bedarf eine Passphrase.
3. **Key zum SSH-Agent hinzufügen:** Registriert den Schlüssel im Windows-Agenten.
Gib deine Passphrase ein letztes Mal ein:
```powershell
ssh-add $HOME\.ssh\id_ed25519_github
```
4. **SSH-Config anpassen (~/.ssh/config):** Trennung von GitHub und Gitea ohne macOS-spezifische Optionen.
Öffne oder erstelle die Datei in VSCode:
```powershell
code $HOME\.ssh\config
```
Füge die Konfiguration für beide Hosts ein:
```text
# GitHub
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_github
IdentitiesOnly yes
```
Speichere die Datei mit **Strg + S** und schließe VSCode.
5. **Public Key in die Windows-Zwischenablage kopieren:**
```powershell
Get-Content $HOME\.ssh\id_ed25519_github.pub | Set-Clipboard
```
Füge den Schlüssel auf **github.com** unter **Settings****SSH and GPG keys****New SSH Key** ein.
6. **Verbindung testen & Repository klonen:**
Prüfe die Verbindung:
```powershell
ssh -T git@github.com
```
Klone das Repository z.B.:
```powershell
git clone git@github.com:[REPO].git
```
---
### Wichtiger Hinweis für Git Bash auf Windows
Damit auch die **Git Bash** dieselbe `~/.ssh/config` und den laufenden Windows-Dienst verwendet, stelle sicher, dass Git den Windows-nativen SSH-Client anspricht:
```bash
git config --global core.sshCommand "ssh.exe"
```

Binary file not shown.

1
07_git/project-git Submodule

Submodule 07_git/project-git added at bb1fa88efd