Arbeiten mit Git in SourceTree - Teil 2

21. September 2016

Wie versprochen folgt hier der zweite Teil unserer Einführung in das Arbeiten mit Git in SourceTree. Teil 1 findest du hier.

Arbeiten in der Projektansicht

Mit einem Doppelklick auf ein Repository im Repository Browser öffnet man die Projektansicht eines einzelnen Repository. In der Projektansicht werden alle nötigen Aktionen innerhalb eines Git Repositories durchgeführt. Außerdem kann man in ihr die bestehenden Commits und Branches begutachten und somit die Änderungshistorie des Projekts verfolgen.

History-Ansicht eines fortgeschrittenen Projekts

Ein typisches Repository mit mehreren Branches, Merges, Remotes und Commits in der Projektansicht.

Da die Projektansicht eine aus vielen Bestandteilen kombinierte Ansicht ist, kann sie im ersten Moment etwas erschlagend und überfüllt wirken. Daher seien nachfolgend die für die tägliche Arbeit wichtigen Teile kurz erklärt, wobei wir in den Beispielbildern ein neues Demo-Repository benutzen.

Toolbar

Toolbar in der Projektansicht

Wichtig sind in der konfigurierbaren Toolbar vor allem Pull und Push – die anderen Buttons werden viel seltener gebraucht und können deshalb auf Wunsch alle entfernt werden.

Die Toolbar besteht standardmäßig aus 10 Buttons, von denen wir nur wenige im Alltag brauchen. Deshalb sei darauf hingewiesen, dass die Toolbar per Rechtsklick und "Symbolleiste anpassen ..." vollständig an die eigenen Bedürfnisse angepasst werden kann. Die so gemachten Änderungen bleiben projektübergreifend erhalten. Man kann beispielsweise die weniger genutzten Buttons "Commit", "Anfordern", "Branch", "Merge", "Stash" und "Im Finder anzeigen" aus der Toolbar entfernen. So bleiben nur noch die folgenden übrig:

  • Pull: Lädt den aktuellsten Stand vom Hosted Service ("remote") des aktiven Branches und merged ihn automatisch in den lokalen Stand.
  • Push: Lädt den aktuellsten Stand eines Branches zum Hosted Service hoch, damit andere ihn "pullen" können.
  • Eingabeaufforderung: Öffnet das Terminal mit dem Pfad des Projektverzeichnisses um dort Command Line Tools zu verwenden.
  • Einstellungen: Öffnet die projektspezifischen Einstellungen, wo man z.B. die Remotes verwalten kann.

Sidebar-Eintrag Arbeitskopie

Arbeitskopie-Eintrag in der Seitenleiste des Projekts

In "Dateistatus" werden neue Commits gemacht, während "Verlauf" dazu dient die letzten Änderungen (Commits) zu durchstöbern. "Suchen" wird wesentlich seltener benutzt.

Über den Eintrag "Arbeitskopie" in der Seitenleiste der Projektansicht lassen sich unterschiedliche Ziele erfüllen:

  • Dateistatus: Hier werden die lokalen Änderungen im Repository angezeigt, wobei es möglich ist Dateien oder einzelne Zeilen als Änderungen für den nächsten Commit auszuwählen. Auch die Commit Message lässt sich hier definieren und der Commit schließlich auch durchführen.
  • Verlauf: Hierbei handelt es sich um die Historie-Ansicht, die man standardmäßig präsentiert bekommt. Man kann hier die zuletzt gemachten Änderungen, die sogenannte "Git-Historie" sehen. Dies geschieht in Form von nach Datum absteigend sortierten Commits, wobei bei Anklicken eines Commits die zu dem Commit zugehörigen Änderungen im unteren Bereich angezeigt werden.
  • Suchen: Hier kann man alle Commit Messages der gesamten Git-Historie gezielt durchsuchen. Die anderen beiden Ansichten werden wesentlich öfter gebraucht, da in ihnen die Hauptarbeit geleistet wird: "Dateistatus" zum Committen und "Verlauf" zum Durchstöbern der letzten Änderungen.

Sidebar-Eintrag Branches

Branches-Eintrag in der Seitenleiste des Projekts

Nach Erstellen eines neuen Repositories wird standardmäßig der master-Branch angelegt.

Hier werden alle Branches des Git Repositorys angezeigt, die lokal angelegt oder ausgecheckt wurden. Das Auschecken eines anderen Branches kann über den Eintrag "Remotes" per Doppelklick durchgeführt werden, sofern dort bereits eine Remote hinterlegt ist. Für Repositories, die von einem Hosted Service geklont wurden ist automatisch eine Remote mit dem Namen "origin" hinterlegt, andernfalls kann man manuell über den "Einstellungen" Button in der Toolbar eine neue Remote hinzufügen.

Der aktuelle Branch, deren Code-Stand man aktuell vorliegen hat (man sagt auch hierzu "ausgecheckt hat") ist fett gedruckt. Neue Branches erstellt man über den Button "Branch" in der Toolbar, jedoch raten wir davon ab, da wir in einem späteren Artikel zum Thema Git Flow eine bessere Alternative erläutern werden.

History

History des Projekts

Die Commit History des Projekts ist hier absteigend nach Datum sortiert (neueste oben) zu finden.

Den größten Teil der Projektansicht nimmt die History-Ansicht ein. Hierbei handelt es sich um die Liste aller Commits im Projekt absteigend nach Commit-Datum sortiert und mit einigen Infos versehen:

  • Graph: Hier lässt sich schnell erkennen, in welchem Branch der Commit getätigt wurde und wie die Branches zusammengeführt wurden bzw. aus welchen sie entstanden sind.
  • Beschreibung: Hier wird die erste Zeile eines Commits angezeigt.
  • Commit: Hierbei handelt es sich um einen eindeutigen Identifikator für einen Commit, den sogenannten SHA1-Hash.
  • Autor: Der Autor / die Autorin des jeweiligen Commits wird hier mitsamt Mail-Adresse angezeigt.
  • Datum: Hier steht der Zeitpunkt, zu dem der Commit gemacht wurde.

Dateistatus

Dateistatus des Commits

Wählt man in der History einen Commit aus, so werden die betreffenden Änderungen angezeigt.

Klickt man einen Commit in der History-Ansicht an, so werden die Details des Commits in der Dateistatus-Ansicht unten angezeigt. Hierbei sind links die Dateien zu sehen, in denen Änderungen stattfanden und rechts ist eine Zusammenfassung der Änderungen der jeweils links ausgewählten Datei. So kann man diese Ansicht dafür nutzen, sich die Änderungen anzusehen, die in einem einzelnen Commit durchgeführt wurden.

Dateistatus eines Projekts

Die Dateistatus-Ansicht zeigt die aktuellen Dateiänderungen im Projekt an und erlaubt sowohl das Vormerken von Dateien als auch das Eintragen einer Commit Message.

In der Dateistatus-Ansicht sehen wir also wieder links die lokal geänderten Dateien und pro angeklickter Datei rechts die jeweiligen Änderungen. Hierbei ist die linke Seite in zwei Teile aufgeteilt:

  • Vorgemerkte Dateien: Hier sind Dateiänderungen aufgelistet, die beim nächsten Commit berücksichtigt werden. Man nennt diesen Ort auch "gestagete" oder "indizierte" Änderungen. Das Entfernen eines Hakens sorgt dafür, dass eine Datei nicht mehr für den nächsten Commit vorgemerkt ist.
  • Nicht vorgemerkte Dateien: Hier stehen alle lokalen Dateiänderungen, die noch nicht für den nächsten Commit vorgemerkt sind. Ein einfaches Anhaken übernimmt alle Änderungen an einer Datei in die obere Liste der vorgemerkten Änderungen.

Außerdem gibt es unten einen Bereich, in dem man eine Commit Message eintragen und diese mit Klick auf "Commit" auch committen kann. Wählt man "Änderungen sofort nach ... pushen" aus, so wird direkt nach dem Commit auch ein Push durchgeführt. Wir raten hiervon jedoch ab, da sonst keine Möglichkeit mehr besteht eventuell gemachte Tippfehler oder andere Versehen lokal noch rückgängig zu machen.