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.
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.
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
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
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
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
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
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.
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.