Die 60 wichtigsten Git-Kommandos und ihre Bedeutung


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