Git ist eines der populärsten Versionskontrollsysteme. Es ermöglicht Entwicklern, Code effizient zu verwalten, Änderungen nachzuverfolgen und an gemeinsamen Projekten zu arbeiten. Hier sind die wichtigsten 60 Git-Kommandos, die jeder Entwickler kennen sollte, sowie detaillierte Erklärungen zu ihrer Verwendung.
1. git init
Initialisiert ein neues Git-Repository im aktuellen Verzeichnis.
git init
2. git clone
Klonen eines Remote-Repositories auf den lokalen Rechner.
git clone <repository-url>
3. git status
Zeigt den aktuellen Status des Repositories, inklusive uncommitteter Änderungen.
git status
4. git add
Fügt geänderte Dateien zur Staging-Area hinzu.
git add <dateiname>
5. git commit
Speichert die Änderungen aus der Staging-Area im lokalen Repository.
git commit -m "Commit-Nachricht"
6. git log
Zeigt eine Liste aller bisherigen Commits.
git log
7. git diff
Zeigt Unterschiede zwischen Dateien oder Commits an.
git diff
8. git branch
Erstellt, listet oder löscht Branches.
git branch <branch-name>
9. git checkout
Wechselt zu einem anderen Branch oder Commit.
git checkout <branch-name>
10. git merge
Führt Änderungen eines Branches in den aktuellen Branch ein.
git merge <branch-name>
11. git pull
Holt die neuesten Änderungen vom Remote-Repository und integriert sie in den aktuellen Branch.
git pull
12. git push
Sendet lokale Commits zum Remote-Repository.
git push
13. git stash
Speichert uncommittete Änderungen temporär, ohne sie zu committen.
git stash
14. git stash apply
Wendet die zuletzt gespeicherten Änderungen wieder an.
git stash apply
15. git reset
Setzt den aktuellen Branch auf einen früheren Commit zurück.
git reset <commit-hash>
16. git revert
Hebt einen bestimmten Commit auf, indem ein neuer Commit erstellt wird, der die Änderungen rückgängig macht.
git revert <commit-hash>
17. git rm
Löscht eine Datei aus dem Arbeitsverzeichnis und aus Git.
git rm <dateiname>
18. git mv
Verschiebt oder benennt eine Datei um.
git mv <alter-name> <neuer-name>
19. git remote
Verwaltet Remote-Repositories.
git remote add <name> <url>
20. git fetch
Holt die neuesten Änderungen von einem Remote-Repository, ohne sie zu integrieren.
git fetch
21. git cherry-pick
Wendet einen bestimmten Commit aus einem anderen Branch im aktuellen Branch an.
git cherry-pick <commit-hash>
22. git tag
Kennzeichnet einen Commit mit einem Tag (z.B. für Releases).
git tag <tag-name>
23. git show
Zeigt detaillierte Informationen über einen Commit oder Tag.
git show <commit-hash>
24. git blame
Zeigt Zeilenverantwortlichkeit, d.h. wer welche Zeilen in einer Datei geändert hat.
git blame <dateiname>
25. git rebase
Wendet Commits eines Branches auf einen anderen an.
git rebase <branch-name>
26. git bisect
Findet den Commit, der einen Fehler eingeführt hat, durch binäre Suche.
git bisect start
27. git reflog
Zeigt eine Log-Historie, die auch Referenzen auf Commits enthält, die normalerweise nicht mehr angezeigt werden.
git reflog
28. git clean
Entfernt nicht verfolgte Dateien aus dem Arbeitsverzeichnis.
git clean -f
29. git archive
Erstellt ein Archiv (z.B. eine ZIP-Datei) des aktuellen oder eines bestimmten Branches.
git archive --format=zip HEAD > archive.zip
30. git submodule
Verwalten von Submodulen, die in einem Git-Projekt integriert sind.
git submodule add <url>
31. git describe
Beschreibt einen Commit anhand des nächsten Tags und der Anzahl der Commits seit dem Tag.
git describe
32. git config
Konfiguriert Git-Einstellungen, wie z.B. Benutzername und E-Mail.
git config --global user.name "Dein Name"
git config --global user.email "deine.email@example.com"
33. git shortlog
Fasst Commits in einer kurzen Übersicht zusammen, gruppiert nach Autoren.
git shortlog
34. git whatchanged
Zeigt die Liste der Commits und die dazugehörigen Änderungen.
git whatchanged
35. git apply
Wendet einen Patch an, ohne einen Commit zu erstellen.
git apply <patchfile>
36. git format-patch
Erstellt einen Patch für die Weitergabe.
git format-patch <commit-hash>
37. git am
Wendet einen Patch aus einer Mail an.
git am <patchfile>
38. git ls-files
Listet alle Dateien im Repository auf.
git ls-files
39. git ls-tree
Zeigt den Inhalt eines Verzeichnisses zu einem bestimmten Commit.
git ls-tree <commit-hash>
40. git cat-file
Zeigt den Inhalt eines Objekts (z.B. eines Commits oder eines Blobs).
git cat-file -p <objekt-hash>
41. git rev-parse
Löst einen Namen oder eine Referenz auf einen Commit-Hash auf.
git rev-parse <ref>
42. git verify-pack
Überprüft den Inhalt eines Packfiles.
git verify-pack <packfile>
43. git fsck
Überprüft das Dateisystem des Repositories auf Integrität.
git fsck
44. git gc
Bereinigt das Repository und optimiert die Speichernutzung.
git gc
45. git prune
Entfernt nicht mehr benötigte Objekte aus dem Repository.
git prune
46. git grep
Sucht nach einem bestimmten Muster in den Dateien des Repositories.
git grep <suchmuster>
47. git symbolic-ref
Zeigt den symbolischen Verweis auf den aktuellen Branch.
git symbolic-ref HEAD
48. git tag -d
Löscht einen Tag.
git tag -d <tag-name>
49. git pull –rebase
Holt die neuesten Änderungen und wendet sie über den aktuellen Branch an.
git pull --rebase
50. git reset –hard
Setzt den aktuellen Branch auf einen bestimmten Commit zurück und überschreibt lokale Änderungen.
git reset --hard <commit-hash>
51. git push –force
Erzwingt das Pushen von Änderungen, selbst wenn es zu Konflikten mit dem Remote-Repository kommt.
git push --force
52. git commit –amend
Ändert den letzten Commit.
git commit --amend
53. git checkout -b
Erstellt einen neuen Branch und wechselt direkt in diesen.
git checkout -b <branch-name>
54. git rebase –interactive
Interaktive Anwendung von Commits, um die Commit-Historie zu bearbeiten.
git rebase --interactive
55. git merge –squash
Fügt die Änderungen eines Branches zusammen, aber erstellt nur einen einzelnen Commit.
git merge --squash <branch-name>
56. git stash pop
Wendet die Änderungen des letzten Stashs an und entfernt sie aus dem Stash.
git stash pop
57. git checkout —
Verwirft lokale Änderungen einer Datei.
git checkout -- <dateiname>
58. git diff –staged
Zeigt Unterschiede der Dateien an, die für den Commit bereit