Zurück zur Startseite
Git Guide

Git & GitHub Guide

Eine umfassende Übersicht der wichtigsten Git-Befehle und GitHub-Workflows

Was ist Git und Github?

Git ist ein verteiltes Versionskontrollsystem, das Entwicklern hilft, den Quellcode von Projekten zu verwalten und Änderungen nachzuverfolgen. Es ermöglicht mehreren Benutzern, gleichzeitig an einem Projekt zu arbeiten, ohne dass es zu Konflikten kommt. Git speichert den gesamten Verlauf von Änderungen, sodass Benutzer jederzeit zu früheren Versionen zurückkehren oder Änderungen vergleichen können.

GitHub hingegen ist eine Plattform, die Git als Basis verwendet, um Entwicklern das Hosting und die Zusammenarbeit an ihren Projekten zu erleichtern. Es bietet Funktionen wie Pull-Requests, Issues und Wikis.

Auch das Teilen von Repositories ist möglich. So wird die Zusammenarbeit zwischen Entwicklern und Teams einfacher. GitHub ermöglicht es Benutzern, Code zu speichern, zu teilen und gemeinsam daran zu arbeiten, was es zu einem der beliebtesten Tools für Open-Source-Entwicklung und Softwareprojekte macht.

Zusammengefasst ist Git das Werkzeug zur Versionskontrolle, während GitHub eine Plattform ist, die Git nutzt, um die Zusammenarbeit und Verwaltung von Codeprojekten zu erleichtern.

1. Git-Grundlagen (Lokales Arbeiten)

git init

Erstellt ein neues lokales Git-Repository im aktuellen Verzeichnis.

git init

git clone

Klonen eines bereits existierenden Git-Repositories (lokal oder remote).

git clone https://github.com/benutzer/repository.git
git clone /pfad/zu/lokalem/repo

git status

Zeigt den Status des Arbeitsverzeichnisses und des Staging-Bereichs an (welche Dateien geändert, hinzugefügt oder entfernt wurden).

git status

git add

Fügt Änderungen im Arbeitsverzeichnis dem Staging-Bereich hinzu (Bereitstellung für den nächsten Commit).

git add datei.txt
git add . (alle Änderungen hinzufügen)

git commit

Speichert alle gestagten Änderungen im lokalen Repository als neuen Commit.

git commit -m "Nachricht"
git commit -a -m "Änderungen direkt committen"

git diff

Zeigt Unterschiede zwischen Arbeitsverzeichnis, Staging-Bereich und letzten Commits.

git diff (Änderungen zwischen Arbeitsverzeichnis und Staging-Bereich)
git diff --staged (Unterschiede zwischen Staging-Bereich und letztem Commit)

git log

Listet den Verlauf aller Commits auf (mit Hash, Autor, Datum und Commit-Nachricht).

git log
git log --oneline
git log --graph --all --decorate

git config

Setzt oder ändert Git-Konfigurationen, wie z.B. Benutzername oder E-Mail.

git config --global user.name "Dein Name"
git config --global user.email "dein@email"

2. Branching und Zusammenführen (Merging)

git branch

Listet vorhandene Branches auf oder erstellt/löscht Branches.

git branch (alle Branches anzeigen)
git branch neuer_branch (neuen Branch erstellen)
git branch -d alter_branch (Branch löschen)

git checkout

Wechselt zu einem anderen Branch oder setzt einzelne Dateien zurück.

git checkout neuer_branch
git checkout -- datei.txt (Datei zurücksetzen)
git checkout commitHash datei.txt (Datei aus einem bestimmten Commit wiederherstellen)

git switch

Modernerer Befehl, um zwischen Branches zu wechseln oder einen neuen Branch zu erstellen.

git switch branchname
git switch -c neuer_branch (Branch anlegen und wechseln)

git merge

Führt Änderungen von einem Branch in den aktuellen Branch zusammen.

git merge anderer_branch
git merge feature_branch --no-ff (kein Fast-Forward-Merge)

git rebase

Integriert Commits aus einem Branch sauber in einen anderen Branch (verändert die Commit-Historie).

git rebase main
git rebase -i HEAD~3 (interaktives Rebase der letzten 3 Commits)

3. Remote-Repositories und Zusammenarbeit

git remote

Verwaltet Referenzen auf entfernte Repositories (z.B. GitHub).

git remote -v (aktuelle Remotes anzeigen)
git remote add origin https://github.com/benutzer/repo.git (einen neuen Remote hinzufügen)

git fetch

Holt neue Änderungen (Commits, Branches, Tags) vom Remote-Repository, ohne diese zu mergen oder zu rebasen.

git fetch
git fetch origin main

git pull

Holt Änderungen vom Remote-Repository und führt sie direkt mit dem lokalen Branch zusammen (Merge oder Rebase, abhängig von Einstellungen).

git pull
git pull --rebase

git push

Überträgt lokale Commits in einen Remote-Branch.

git push origin main
git push -u origin neuer_branch (Branch zum ersten Mal hochladen und tracken)

4. Nützliche Zusatzbefehle

git stash

Sichert ungestagte oder gestagte Änderungen temporär, um z.B. den Arbeitsbaum zu leeren.

git stash (legt Änderungen auf den Stapel)
git stash list (zeigt gespeicherte Stashes an)
git stash apply (wendet die zuletzt gespeicherten Änderungen wieder an)

git tag

Erstellt, listet oder löscht Tags (Versions-Markierungen).

git tag (alle Tags anzeigen)
git tag v1.0.0 (neuen Tag setzen)
git tag -d v1.0.0 (Tag löschen)

git cherry-pick

Übernimmt einen bestimmten Commit (oder mehrere) von einem Branch in einen anderen, ohne alle Commits zusammenführen zu müssen.

git cherry-pick commitHash

git restore (neuere Git-Versionen)

Wiederherstellen von Dateien aus dem Index oder einem Commit. Ähnlich wie git checkout, aber spezifischer für den Datei-Rollback.

git restore datei.txt (Änderungen zurücksetzen)
git restore --staged datei.txt (Aus dem Staging-Bereich entfernen)

5. GitHub-spezifische Workflows

Pull Request (PR)

In GitHub: Ein PR dient dem Code-Review und dem Zusammenführen eines Branches in einen anderen (meist main).

Erstelle einen neuen Branch, pushe ihn zu GitHub und öffne dann in GitHub einen Pull Request.

Fork und Pull Requests

Standard-Workflow für externe Beiträge: Projekt forken, eigene Änderungen committen, dann Pull Request an das Hauptrepository stellen.

Klicke auf ‚Fork' im Ziel-Repository, klone dein geforktes Repository, committe Änderungen und schicke einen PR.

Git Tutorial: Git-Grundlagen einfach erklärt für Anfänger - Schritt für Schritt

Willkommen zu unserem umfassenden Git Tutorial, in dem wir die Grundlagen von Git für Anfänger einfach erklärt darstellen. Git ist ein unverzichtbares Werkzeug für Entwickler, die an Projekten arbeiten und ihre Änderungen effizient verwalten möchten. In diesem Schritt-für-Schritt-Leitfaden werden wir die wichtigsten Konzepte wie Repositorys, Commits, Branches und das Arbeiten mit GitHub behandeln. Lassen Sie uns direkt eintauchen!

Was ist ein Git Repository und wie erstelle ich eines?

Ein Git Repository ist ein Speicherort, in dem alle Dateien und ihre Versionshistorie eines Projekts gespeichert werden. Es ermöglicht Entwicklern, Änderungen nachzuvollziehen, zu verwalten und bei Bedarf zurückzuverfolgen.

Um ein Repository zu erstellen, benötigen Sie zunächst eine lokale Installation von Git. Sie können Git installieren, indem Sie die offizielle Website besuchen und die Installationsanweisungen für Ihr Betriebssystem befolgen. Nach der Installation können Sie ein neues Repository erstellen, indem Sie in die Kommandozeile den Befehl git init eingeben. Damit wird ein neues, leeres Repository in dem aktuellen Verzeichnis erstellt.

Wie installiere ich Git für mein Repository?

Um Git zu installieren, besuchen Sie die offizielle Git-Website und laden Sie die für Ihr Betriebssystem geeignete Version herunter. Nach dem Herunterladen folgen Sie den Anweisungen des Installationsassistenten.

Wenn die Installation abgeschlossen ist, können Sie Git in der Kommandozeile oder über Git Bash verwenden. Um zu überprüfen, ob die Installation erfolgreich war, geben Sie den Befehl git --version ein. Dies sollte die installierte Version von Git anzeigen.

Was sind die grundlegenden Befehle für ein Git Repository?

Die grundlegenden Git-Befehle sind entscheidend für die Arbeit mit einem Repository. Zu den wichtigsten gehören git init, um ein neues Repository zu erstellen, git add, um Änderungen zur Staging-Area hinzuzufügen, und git commit, um diese Änderungen zu speichern. Darüber hinaus ist git status ein nützlicher Befehl, um den aktuellen Status Ihrer Dateien im Repository zu überprüfen. Hier sehen Sie, welche Änderungen bereitgestellt wurden und welche noch untracked sind.

Wie klone ich ein Repository von GitHub?

Das Klonen eines Repositorys von GitHub ist ein einfacher Vorgang. Zuerst benötigen Sie die URL des Repositorys, das Sie klonen möchten. Diese finden Sie auf der GitHub-Seite des Projekts unter dem Button "Code". Nachdem Sie die URL kopiert haben, öffnen Sie die Kommandozeile und verwenden Sie den Befehl git clone [URL]. Dadurch wird eine Kopie des Repositorys auf Ihrem lokalen Rechner erstellt, einschließlich aller Branches und Commits.

Wie funktioniert das Committen in Git?

Das Committen in Git ist der Prozess, bei dem Änderungen an den Dateien im Repository dauerhaft gespeichert werden. Ein commit erfasst die aktuelle Version der Dateien und speichert sie in der Versionshistorie. Dies ist entscheidend für die Nachverfolgbarkeit von Änderungen und die Zusammenarbeit in Teams. Um einen Commit durchzuführen, müssen Sie zuerst die gewünschten Änderungen mit git add zur Staging-Area hinzufügen, bevor Sie git commit verwenden, um diese Änderungen zu speichern.

Was ist ein Commit in Git?

Ein Commit in Git ist ein Snapshot des Repositories zu einem bestimmten Zeitpunkt. Jeder Commit hat eine eindeutige ID und enthält Informationen über den Autor, das Datum und eine Commit-Nachricht, die beschreibt, was geändert wurde. Commits ermöglichen es Entwicklern, zu vorherigen Versionen zurückzukehren und den Verlauf der Entwicklung nachzuvollziehen. Dies ist besonders nützlich, wenn Sie einen Fehler beheben oder eine vorherige Funktion wiederherstellen möchten.

Wie führe ich einen Git Commit durch?

Um einen Git Commit durchzuführen, verwenden Sie zunächst den Befehl git add [datei], um die Änderungen an der Datei zur Staging-Area hinzuzufügen. Wenn Sie mehrere Dateien hinzufügen möchten, können Sie auch git add . und verwenden Sie den Befehl "git add", um alle Änderungen zum Index hinzuzufügen. verwenden, um alle Änderungen hinzuzufügen.

Anschließend führen Sie git commit -m "Ihre Nachricht" aus, wobei die Nachricht beschreibt, was in diesem Commit geändert wurde. Dadurch wird der Commit in der Versionshistorie festgehalten.

Was sind die besten Praktiken für Git Commits?

Um die Versionskontrolle effektiv zu nutzen, sollten Sie einige bewährte Praktiken für Git Commits beachten. Verwenden Sie klare und prägnante Commit-Nachrichten, die den Zweck der Änderungen beschreiben. Führen Sie regelmäßig Commits durch, um kleine, logische Änderungen zu speichern, anstatt große Mengen an Änderungen auf einmal zu committen. Dies erleichtert die Nachverfolgung und das Zusammenführen von Änderungen in der Zukunft.

Wie verwalte ich Dateien mit Git Add und Git Status?

Die Befehle git add und git status sind wesentliche Werkzeuge zur Verwaltung von Dateien in einem Git Repository. Mit git add können Sie spezifische Dateien oder alle Änderungen zur Staging-Area hinzufügen, bevor Sie diese committen. git status hingegen zeigt Ihnen den aktuellen Zustand Ihres Repositories an, einschließlich aller Dateien, die geändert wurden, und ob sie bereitgestellt oder untracked sind.

Wie benutze ich den Befehl git add?

Um den Befehl git add zu verwenden, geben Sie einfach git add [datei] ein, um eine bestimmte Datei hinzuzufügen. Wenn Sie alle Änderungen, die Sie gemacht haben, hinzufügen möchten, verwenden Sie git add . oder git add -A, um alle neuen, geänderten und gelöschten Dateien zur Staging-Area hinzuzufügen. Es ist wichtig, sicherzustellen, dass Sie nur die gewünschten Änderungen hinzufügen, bevor Sie Ihren Commit durchführen.

Was zeigt mir der Befehl git status?

Der Befehl git status ist ein unverzichtbares Werkzeug, um den aktuellen Zustand Ihres Repositories zu überprüfen. Er zeigt Ihnen die Dateien an, die geändert wurden, sowie den Status dieser Dateien. Sie sehen, welche Dateien zur Staging-Area hinzugefügt wurden, welche noch untracked sind und ob es Änderungen gibt, die noch nicht committet wurden. Dies ermöglicht es Ihnen, den Überblick über Ihre Arbeit zu behalten und sicherzustellen, dass alles bereit ist, bevor Sie einen Commit durchführen.

Wie kann ich die Änderungen in meiner Datei verfolgen?

Um die Änderungen in einer Datei zu verfolgen, können Sie den Befehl git diff verwenden. Dieser Befehl zeigt Ihnen die Unterschiede zwischen Ihrer aktuellen Datei und dem letzten Commit. Sie können auch git log verwenden, um eine Historie aller Commits zu sehen, die Änderungen an der Datei vorgenommen haben. Dies hilft Ihnen, den Verlauf der Datei nachzuvollziehen und Änderungen rückgängig zu machen, falls erforderlich.

Wie arbeite ich mit Branches in Git?

Branches in Git ermöglichen es Entwicklern, an verschiedenen Funktionen oder Versionen eines Projekts unabhängig zu arbeiten. Jeder Branch kann eigene Commits haben, was die Entwicklung isoliert und gleichzeitig das Hauptprojekt stabil hält, während Sie mit git arbeiten. Das Arbeiten mit Branches verbessert die Zusammenarbeit im Team und fördert die Organisation Ihrer Arbeit. Sie können Branches erstellen, wechseln und zusammenführen, um die Entwicklung effizient zu gestalten.

Was sind Branches und warum sind sie wichtig?

Branches sind separate Entwicklungsstränge innerhalb eines Git-Repositories. Sie ermöglichen es Entwicklern, neue Funktionen oder Bugfixes zu erstellen, ohne die Hauptversion des Codes zu beeinträchtigen. Indem Sie an einem Branch arbeiten, können Sie Änderungen vornehmen und testen, bevor Sie diese in den Hauptbranch, oft main oder master, zusammenführen. Dies fördert eine saubere und kontrollierte Entwicklung, insbesondere in Teams, wo mehrere Entwickler gleichzeitig arbeiten.

Wie erstelle und wechsle ich zwischen Branches?

Um einen neuen Branch zu erstellen, verwenden Sie den Befehl git branch [branch-name]. Um zwischen Branches zu wechseln, nutzen Sie git checkout [branch-name]. Alternativ können Sie den Befehl git switch [branch-name] verwenden, um den Branch zu wechseln. Es ist ratsam, regelmäßig zwischen Branches zu wechseln, um an verschiedenen Features zu arbeiten und sicherzustellen, dass alle Änderungen gut koordiniert sind.

Wie führe ich Branches zusammen (Merge)?

Das Zusammenführen von Branches ist ein wesentlicher Prozess in Git. Um einen Branch mit einem anderen zu mergen, wechseln Sie zuerst zu dem Branch, in den Sie mergen möchten (z.B. git checkout main).

Dann verwenden Sie den Befehl git merge [branch-name]. Dies wird die Änderungen des angegebenen Branches in den aktuellen Branch integrieren. Bei Konflikten müssen Sie diese manuell lösen, bevor Sie den Merge abschließen können.

Wie pushe ich Änderungen zu GitHub?

Das Pushen von Änderungen zu GitHub ist der letzte Schritt, um Ihre lokalen Commits in ein Remote-Repository hochzuladen. Es ist wichtig zu wissen, dass Push und Pull unterschiedliche Funktionen haben. git push wird verwendet, um lokale Commits zu einem Remote-Repository zu senden, während git pull verwendet wird, um Änderungen von einem Remote-Repository in Ihr lokales Repository herunterzuladen.

Was ist der Unterschied zwischen git push und git pull?

Der Hauptunterschied zwischen git push und git pull liegt in ihrer Funktionalität. Während git push verwendet wird, um lokale Änderungen zu einem Remote-Repository zu übertragen, wird git pull eingesetzt, um die neuesten Änderungen von einem Remote-Repository herunterzuladen und mit Ihrem lokalen Branch zu synchronisieren. Das Verständnis dieser Befehle ist entscheidend für die effektive Zusammenarbeit in Teams und die Verwaltung Ihres Codes, insbesondere wenn Sie git lernen.

Wie kann ich meine lokalen Änderungen in ein Remote-Repository pushen?

Um Ihre lokalen Änderungen in ein Remote-Repository zu pushen, verwenden Sie den Befehl git push origin [branch-name]. Dies sendet alle lokalen Commits des angegebenen Branches zu dem Remote-Repository, das mit Ihrem lokalen Repository verknüpft ist, und ermöglicht ein einfaches Update. Vergewissern Sie sich, dass Sie die neuesten Änderungen vom Remote-Repository mit git pull abgerufen haben, bevor Sie pushen, um mögliche Konflikte zu vermeiden.

Wie aktualisiere ich mein Repository von GitHub?

Um Ihr lokales Repository von GitHub zu aktualisieren, verwenden Sie den Befehl git pull. Dieser Befehl lädt alle Änderungen, die im Remote-Repository vorgenommen wurden, herunter und integriert sie in Ihren aktuellen Branch, was ein Update des Repositorys ermöglicht. Dies ist besonders wichtig, wenn mehrere Entwickler an demselben Projekt arbeiten, um sicherzustellen, dass Sie die neuesten Änderungen haben, bevor Sie Ihre eigenen Commits durchführen.