Git-Tutorial: Repositories untersuchen (Teil 1: git status)

In einer Reihe von Tutorials stellen wir die wichtigsten Befehle des verteilten Versionskontrollsystems Git vor. Nach dem initialen Aufsetzen von Git und dem Speichern von Änderungen sollen nun Repositories mithilfe der Kommandos git status und git log untersucht werden. Zunächst zu git status.

git status

Der Befehl git status zeigt den Status des Arbeitsverzeichnisses und des Staging-Bereichs an. Der Entwickler kann sehen, welche Änderungen gestaget wurden, welche nicht, und welche Dateien nicht von Git getrackt werden. Die Statusausgabe zeigt keine Informationen bezüglich der committeten Projekt-Historie. Dafür ist das Kommando git log nötig.

Nutzung

git status

Listet auf, welche Dateien gestaget, nicht gestaget und nicht getrackt sind.

Hinweise

git status ist ein relativ gradliniger Befehl. Er zeigt einfach, was im Hinblick auf git add und git commit passiert ist. Statusmeldungen enthalten auch relevante Informationen zum Stagen und Unstagen von Dateien. Die Sample-Ausgabe zeigt die drei Hauptkategorien eines Aufrufs von git status:

# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
#modified: hello.py
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
#modified: main.py
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
#hello.pyc

Dateien ignorieren

Nicht getrackte Dateien fallen typischerweise in zwei Kategorien. Entweder handelt es sich um Dateien, die dem Projekt gerade hinzugefügt und noch nicht committet wurden, oder es sind kompilierte Binaries wie .pyc, .obj, .exe usw. Während es definitiv vorteilhaft ist, dass die Ausgabe von git status Dateien der ersten Kategorie enthält, erschweren Dateien der zweiten Kategorie den Überblick darüber, was im Repository vor sich geht.

Aus diesem Grund bietet Git die Möglichkeit, Dateien komplett zu ignorieren, indem Pfade in einer speziellen Datei namens .gitignore platziert werden. Alle Dateien, die ignoriert werden sollen, lassen sich hier in separaten Zeilen definieren; das Sternchensymbol * kann als Wildcard genutzt werden. Beispielsweise führt die folgende Zeile in einer Datei .gitignore im Root-Verzeichnis des Projekts dazu, dass kompilierte Python-Module nicht von git status angezeigt werden:

*.pyc

Beispiel

Es ist eine bewährte Praxis, den Status eines Repositorys zu prüfen, ehe Änderungen committet werden, damit nicht versehentlich etwas committet wird, was nicht dafür vorgesehen ist. Dieses Beispiel zeigt den Repository-Status vor und nach dem Stagen und Committen eines Snapshots:

# Edit hello.py
git status
# hello.py is listed under "Changes not staged for commit"
git add hello.py
git status
# hello.py is listed under "Changes to be committed"
git commit
git status
# nothing to commit (working directory clean)

Die erste Statusausgabe zeigt die Datei als nicht gestaget. Die Aktion git add wird im zweiten git status reflektiert. Die letzte Statusausgabe sagt, dass es nichts zu committen gibt – das Arbeitsverzeichnis entspricht dem jüngsten Commit. Einige Git-Befehle wie git merge erfordern ein sauberes Arbeitsverzeichnis, damit nicht versehentlich Änderungen überschrieben werden.

Das folgende Tutorial wird sich mit git log beschäftigen.

Weiterführende Infos: Ihr Partner für Git und Stash

Kennen Sie Stash, Atlassians Git-Repository-Managementsystem? Stash bietet eine zentrale Lösung zum Management des gesamten distributierten Codes: Hier kommen alle Git-Repositories im Unternehmen zusammen, hier finden Entwickler immer die letzte offizielle Version eines Projekts, hier können Projektverantwortliche Berechtigungen kontrollieren, um sicherzustellen, dass die richtigen Nutzer Zugriff auf den richtigen Code haben.

Möchten Sie mehr erfahren? Wir sind offizieller Vertriebspartner von Atlassian und einer der größten Atlassian Experts Partner weltweit. Gerne unterstützen wir Sie bei der Evaluierung, Lizenzierung und Adaption von Stash. Und wenn Sie Atlassian-Lizenzen bei //SEIBERT/MEDIA kaufen, gewähren wir Ihnen einen Rabatt in Höhe von 10% der Lizenzkosten in Form von Beratungsleistungen. Bitte sprechen Sie uns einfach an.

99 Argumente für Stash als Git-Repository-Manager
Branch-basierte Git-Workflows mit Stash adaptieren
Echte Integration: Das Zusammenspiel von JIRA, Stash und Bamboo
Interview: Die Vorteile von Git in der Software-Entwicklung und die Möglichkeiten von Stash
So funktioniert die Lizenzierung von Atlassian-Produkten