Hauptmenü öffnen

/dev/null β

Änderungen

GameDevWeek/SourceTree

7.830 Bytes hinzugefügt, 22:31, 8. Mär. 2016
keine Bearbeitungszusammenfassung
<div style="floatFür alle Anfänger und diejenigen, die lieber mit einem visuellem Tool arbeiten als mit der Konsole haben wir uns entschieden [http: left; margin//www.sourcetreeapp.com/ SourceTree] in Verbindung mit [http: 0 25px 25px 0;">__TOC__</div>/www.perforce.com/downloads/20-User?qt-perforce_downloads_step_3=1#product-10 P4Merge] einzusetzen. 
== Vorbereitung ==
[[Datei:P4merge install.png|300px|miniatur|rechts|Lediglich P4Merge muss installiert werden.]]# Installiere [http://www.sourcetreeapp.com/ SourceTree]installieren# Installiere [httphttps://www.perforce.com/downloadsproduct/components/20perforce-visual-merge-User?qtand-perforce_downloads_step_3=1#productdiff-10 tools P4Merge]installieren
#* Bei der Installation muss lediglich der Haken bei P4Merge gesetzt werden.. alle anderen Tools sind nicht notwendig.
# Erstelle einen Ein [https://github.com/ GitHub Account]muss erstellt werden, falls nicht vorhanden.<br style="clear: both"/>=== Bookmarks Verstecken ===Die Bookmarks Ansicht in SourceTree ist selten notwendig. Diese kann über das View Menü versteckt werden. === Username & Email konfigurieren ===# In SourceTree die Optionen öffnen (Tools->Options)# Den Tab "General" wählen# Full Name erscheint als solches in Github.# Email muss der Github Email entsprechen. === Merge Tool konfigurieren ===# In SourceTree die Optionen öffnen (Tools->Options)# Den Tab "Diff" wählen# "P4Merge" muss als Option bei "External Diff Tool" und "Merge Tool" gewählt sein. === P4Merge konfigurieren === # P4Merge Starten# 2 Text-Dateien zum Öffnen wählen, egal welche.#* Diese werden lediglich benötigt um in die Hauptansicht des Programms zu kommen.# Im Menü Edit->Preferences wählen.# In der Sektion "Text Format" die Option "Insert spaces for tabs" wählen.#* Und falls nicht gesetzt, "Tab spacing" auf 4 stellen.# In der Sektion "File Format" das "Character encoding" auf "Unicode (UTF-8, no BOM)" stellen.# Einstellungen speichern und Programm beenden. == Klonen des Repositories ==[[Datei:sourcetree_clone.png|300px|miniatur|rechts|Klonen eines Repositories.]]# In der Toolbar den Button "Clone / New" benutzen.# Im Tab "Clone Repository" folgende Konfiguration setzen:#* URL: https://github.com/GameDevWeek/CodeBase.git#* Destination Path: Ein Ort wo der Code gespeichert werden soll.#* Wenn Bookmarks nicht von Interesse sind, kann der Haken abgeschaltet werden.# Es wird nun alles heruntergeladen. Dies kann etwas dauern.<br style="clear: both"/>
<br style="clear: left;">
== Konfiguration ==
== Clone des Repositories ==
== Normaler Git Workflow ==
=== Einen entfernten Branch auschecken ===
[[Datei:sourcetree_checkout.png|300px|miniatur|rechts|Klonen eines Repositories.]]
* In der Baumstruktur Links gibt es einen Bereich "Remotes" mit dem Knoten "Origin"
* Hier sind alle Branches gelistet, die im Github Repository zu finden sind.
* Im Kontextmenü der Branches kann gewählt werden "Checkout ..."
* Im folgenden Popup können die Standardeinstellungen beibehalten werden.
* Nun ist der Branch lokal verfügbar und man kann jederzeit zu diesem Wechseln.
* Der Branch wird nach Checkout automatisch ausgewählt.
 
Führt diese Schritte für den Branch "develop" aus.
<br style="clear: both"/>
 
=== Änderungen Stagen ===
[[Datei:sourcetree_branch_view.png|300px|miniatur|rechts|Branch Ansicht, Staged und Unstaged Files.]]
* Wenn Änderungen vorhanden sind, erscheinen diese in der Branch Ansicht als oberster Eintrag "Uncommitted changes".
** Zur Branch Ansicht wechselt man indem man in der Baumstruktur Links den aktiven Branch wählt.
* Wird dieser Eintrag ausgewählt, kann man im unteren Teil sehen, welche Änderungen erkannt wurden.
* Im linken unteren Teil sind zwei Bereiche "Staged files" und "Unstaged files".
* Diese stellen die Staging Area und die sonstigen Änderungen dar.
* Via Drag & Drop oder mit dem Setzen der Haken können Dateien zwischen den Bereichen gewechselt werden.
* Wählt man eine einzelne Datei, kann auf der rechten Seite gesehen werden, welche Änderungen dies beinhaltet.
* Hier können auch einzelne Codeschnipsel zur Staging Area hinzugefügt werden.
<br style="clear: both"/>
 
=== Änderungen Stashen ===
[[Datei:sourcetree_stash_context.png|300px|miniatur|rechts|Stash Einträge.]]
Sollten Änderungen vorhanden sein, die nicht committet werden sollen, so können diese ausgelagert und später wieder zurückgeführt werden. Dies nennt sich bei Git Stashen.
# Warnung: Beim Stashen werden alle Änderungen (Staged und Unstaged) zu einem Stash hinzugefügt. Beim wiederherstellen, erscheinen diese Änderungen alle als Unstaged.
# Dazu klickt man auf den Button "Stash" in der Toolbar und vergibt einen Namen.
# Nun erscheint Links in der Baumstruktur ein neuer Eintrag im Knoten "Stashes".
#* Mit dessen Kontextmenü können die Änderungen zurück gespielt werden.
<br style="clear: both"/>
 
=== Änderungen Committen ===
[[Datei:sourcetree_commit.png|300px|miniatur|rechts|Committen.]]# Wechsel in die Commit Ansicht mit dem Button "Commit" in der Toolbar.# Links sind wie bekannt Staged und Unstaged Änderungen zu sehen.# Diese können hier noch einmal angepasst werden.# Unten erscheint ein Kommentar Feld. Hier sollte kurz beschrieben werden, was der Commit ändert.# Der Haken "Push changes.." sollte nicht gewählt werden.# Mit einem Klick auf "Commit" beim Kommentarfeld wird der Commit gespeichert.#* Diese Änderungen sind vorerst noch Lokal!<br style="clear: both"/> === Externe Änderungen ziehen: Pull (Fetch & Merge ) ===[[Datei:sourcetree_pull.png|300px|miniatur|rechts|Pullen.]]Bevor die Änderungen auf den Server geschoben werden können, müssen erst Updates vom Server gezogen werden und ggf. mit dem eigenen Code gemerged werden.# Den Button "Pull" in der Toolbar benutzen# Hier können die Standardeinstellungen übernommen werden.# Git versucht alle Änderungen automatisch zu mergen. Sollte dies nicht funktionieren erscheint eine Fehlermeldung.# Bei einem Konflikt muss manuell gemerged werden.<br style="clear: both"/> === Konflikte beheben / Dateien Mergen === # Ist ein Konflikt beim Mergen entstanden, so wird dies in der Statusleiste angezeigt.# Um diesen zu beheben wechselnt man in die Branch Ansicht und dort in den ersten Eintrag "Uncommitted changes".# Hier erscheinen im Bereich "Unstaged files" alle Dateien die Konflikte haben.# Für Jede Datei wird wie folgt vorgegangen:## Das Kontextmenü der Datei öffnen.## "Resolve Conflicts->Launch External Merge Tool" wählen.## P4Merge wird nun gestartet. Man sieht 3 Dateien nebeneinander und eine darunter.##* In der Mitte ist die Basis Datei zu sehen##* Links sind die lokalen Änderungen zu sehen##* Rechts sind externe Änderungen zu sehen##* Unten ist die finale Version zu sehen.## P4Merge versucht soweit es geht eine Vorauswahl zu treffen.##* Diese sollte dennoch auf Korrektheit überprüft werden.## Im Unterren Bereich sieht man nun welche Änderungen übernommen werden.## Auf der Rechten Seite gibt es die Möglichkeit, zu wählen ob Zeilen der Basisdatei, der Lokalen Datei oder der externen Datei genommen werden sollen.##* Man kann auch mehrere Wählen indem man Shift gedrückt hält##* Es ist auch möglich die Änderungen manuell durch zu führen.## Sind alle Änderungen vollzogen, kann P4Merge geschlossen werden (speichern nicht vergessen)## Danach bleibt eine Datei übrig: dateiname.orig. Diese kann gelöscht werden falls nicht weiter benötigt.# Sind alle Konflikte behoben, kann in die "Commit" Ansicht gewechselt werden, um die behobenen Konflikte zu committen.  
=== Änderungen zum Server pushen ===
# Vor dem pushen ist sicher zu stellen, dass man auf dem aktuellsten Stand ist (siehe Pull).
# Pushen kann man auf zwei Varianten:
#* Über den "Push" Button der Toolbar. Dieser wählt allerdings alle Branches aus. Dies ist nicht zu empfehlen. Hier sollte nur der Branch ausgewählt sein, der auch gepushed werden soll.
#* Über das Kontextmenü des Branches ("Push to origin/..."). Dies wählt nur den jeweiligen Branch aus.
 
== GitFlow ==
=== In SourceTree gibt es eine Möglichkeit das erstellen von Feature erstellen ===Branches etwas komfortabler zu gestalten. Dabei wird der [https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow GitFlow Workflow] genutzt. Ein kurzes Video, was alles wichtige erklärt ist hier zu finden: [http://buildamodule.com/video/change-management-and-version-control-deploying-releases-features-and-fixes-with-git-how-to-use-a-scalable-git-branching-model-called-gitflow How to use a scalable Git branching model called Gitflow] Wie dies In SourceTree zu benutzen ist, ist in diesem Video schnell erklärt:{{#ev:youtube|1lSdqrs2f5c|650x500}} === Feature fertigstellen ===[[Kategorie:GameDevWeek]]
385
Bearbeitungen