95 lines
4.3 KiB
Markdown
95 lines
4.3 KiB
Markdown
# Git
|
|
|
|
Git ist ein Versionskontrollsystem, das zur Nachverfolgung von Änderungen an Dateien und Verzeichnissen eingesetzt wird.
|
|
Es dient primär der Verwaltung von Softwareprojekten, kann aber für beliebige Datensätze verwendet werden.
|
|
|
|
Das grundlegende Konzept von Git besteht darin, Änderungen an Dateien in Form von "Schnappschüssen" zu speichern.
|
|
Diese Schnappschüsse werden als Commits bezeichnet und repräsentieren den Zustand des Projekts zu einem bestimmten Zeitpunkt.
|
|
Jeder Commit enthält die Informationen über die vorgenommenen Änderungen sowie eine eindeutige Kennung.
|
|
|
|
Git verfolgt nicht nur die aktuellen Versionen von Dateien, sondern den vollständigen Änderungshistorie.
|
|
Das ermöglicht es, jederzeit zu früheren Versionen zurückzukehren oder Änderungen von verschiedenen Versionen zu vergleichen.
|
|
|
|
## Hauptfunktionen und Nutzen:
|
|
|
|
- Versionskontrolle: Git speichert die gesamte Historie von Dateiänderungen. Dadurch wird ein Überblick über die Entwicklung des Projekts gewährleistet.
|
|
- Wiederherstellung: Bei Bedarf ist es möglich, zu beliebigen vorherigen Zuständen des Projekts zurückzukehren.
|
|
- Zusammenarbeit: Git ermöglicht es, dass mehrere Personen gleichzeitig an einem Projekt arbeiten können. Änderungen werden zusammengeführt und Konflikte können relativ einfach gelöst werden.
|
|
- Verzweigungen (Branches): Git ermöglicht die Erstellung von Verzweigungen, um neue Funktionen oder Experimente zu implementieren, ohne die Hauptversion des Projekts zu beeinflussen.
|
|
- Nachvollziehbarkeit: Git protokolliert, wann, von wem und welche Änderungen an den Dateien vorgenommen wurden.
|
|
|
|
## Kernbegriffe:
|
|
|
|
- Repository: Ein Repository ist der Speicherort für das gesamte Projekt, einschließlich der Historie der Änderungen.
|
|
- Commit: Ein Commit ist ein Schnappschuss des Projekts zu einem bestimmten Zeitpunkt.
|
|
- Branch: Ein Branch ist eine unabhängige Entwicklungslinie innerhalb des Projekts.
|
|
Absolut, hier ist ein prägnantes Git-Cheatsheet, das auf wesentliche Befehle fokussiert:
|
|
|
|
## Git Cheatsheet: Kompakte Befehlsübersicht
|
|
|
|
Diese Übersicht listet die wichtigsten Git-Befehle für den täglichen Gebrauch auf.
|
|
|
|
### Repository-Management
|
|
|
|
- `git init`: Neues Repository erstellen (im aktuellen Ordner)
|
|
- `git clone <URL>`: Repository von einer URL kopieren
|
|
|
|
### Arbeitsbereich
|
|
|
|
- `git status`: Status der Änderungen anzeigen
|
|
- `git add <Datei>`: Datei zur Staging-Area hinzufügen
|
|
- `git add .`: Alle Änderungen hinzufügen
|
|
- `git commit -m "<Nachricht>"`: Änderungen als Commit speichern
|
|
- `git diff`: Änderungen seit letztem Commit anzeigen
|
|
- `git diff --staged`: Änderungen in der Staging-Area anzeigen
|
|
- `git restore <Datei>`: Änderungen in Datei verwerfen (Arbeitsbereich)
|
|
- `git restore --staged <Datei>`: Datei aus Staging-Area entfernen
|
|
|
|
### Branch-Verwaltung
|
|
|
|
- `git branch`: Liste der Branches anzeigen
|
|
- `git branch <Name>`: Neuen Branch erstellen
|
|
- `git checkout <Name>`: Zu einem Branch wechseln
|
|
- `git checkout -b <Name>`: Neuen Branch erstellen und wechseln
|
|
- `git merge <Name>`: Branch in aktuellen Branch zusammenführen
|
|
- `git branch -d <Name>`: Branch löschen (falls zusammengeführt)
|
|
- `git branch -D <Name>`: Branch erzwingen löschen
|
|
|
|
### Remote-Interaktion
|
|
|
|
- `git remote add origin <URL>`: Remote-Repository hinzufügen (Name: origin)
|
|
- `git remote -v`: Konfigurierte Remotes anzeigen
|
|
- `git fetch origin`: Änderungen von Remote holen
|
|
- `git pull origin <Branch>`: Änderungen holen und mergen
|
|
- `git push origin <Branch>`: Lokale Commits auf Remote hochladen
|
|
|
|
### Historie und Logs
|
|
|
|
- `git log`: Commit-Historie anzeigen
|
|
- `git log --oneline`: Kompakte Commit-Historie
|
|
- `git show <Commit-Hash>`: Details eines Commits anzeigen
|
|
|
|
### Sonstiges
|
|
|
|
- `git stash`: Unfertige Änderungen temporär sichern
|
|
- `git stash pop`: Gesicherte Änderungen wiederherstellen
|
|
- `git tag <Name>`: Tag für einen Commit erstellen
|
|
|
|
### Wichtige Hinweise
|
|
|
|
- `<Datei>`: Einzelne Datei, Pfad oder Platzhalter
|
|
- `<Name>`: Name eines Branches oder Tags
|
|
- `<URL>`: URL eines Remote-Repositories
|
|
- `origin`: Konvention für Standard-Remote
|
|
- Befehle sind *case-sensitive*
|
|
|
|
### Kurzerklärung
|
|
|
|
- **Staging-Area:** Zwischenschritt vor dem Commit, um Änderungen auszuwählen.
|
|
- **Branch:** Entwicklungslinie, die unabhängig von anderen ist.
|
|
- **Remote:** Ein Repository auf einem anderen Server.
|
|
|
|
### Zusatz
|
|
|
|
- `git help <Befehl>`: Hilfe zum Befehl anzeigen
|