Advertisement
  1. Code
  2. Git

Git-Versionskontrolle in der Befehlszeile für iOS-Entwickler

by
Read Time:13 minsLanguages:

German (Deutsch) translation by Nikol Angelowa (you can also view the original English article)

Es ist  mit uns allen passiert: Wir ändern etwas in unserem Code und plötzlich scheint alles "kaputt" zu sein. Dies ist der Fall, wenn die Versionskontrolle ein Segen ist - wenn Sie wissen, wie man sie verwendet. In diesem Tutorial erfahren Sie, wie Sie Git über die Befehlszeile verwenden.

Xcode und andere moderne IDEs verfügen über grundlegende Optionen für Git, die in ihre grafische Benutzeroberfläche integriert sind. Sie können Ihr Repo (Git-Repository) jedoch nur über die Befehlszeile auf hoher Ebene steuern. Wenn Sie erweiterte Codierung oder Git-Verwaltung durchführen, ist es wichtig, mit der Befehlszeile vertraut zu sein. Wenn Sie die Befehlszeile noch nie zuvor verwendet haben, können Sie sich mein anderes Tutorial zum Thema ansehen:

Informationen zur Versionskontrolle

Bevor wir beginnen, sollten wir überprüfen, was genau Versionskontrolle ist. Ein Versionskontrollsystem ist eine Softwarelösung, mit der Sie Revisionen Ihres Codes und anderer Daten problemlos speichern können, sodass Sie auf frühere Versionen zurücksetzen, vorgenommene Änderungen überprüfen und Aktualisierungen für Mitarbeiter freigeben können.

Es gibt viele Vorteile und Anwendungsfälle für die Versionskontrolle. Wenn Sie die Änderungen ("commits") an Ihrem Projekt überprüfen, können Sie feststellen, wer einen bestimmten Code geschrieben hat und warum. Sie können auch alle Änderungen rückgängig machen, bei denen ein Fehler festgestellt wurde oder die Funktionalität beeinträchtigen.

Das heute am häufigsten verwendete Versionskontrollsystem ist Git. Das ist das, worauf wir in diesem Beitrag eingehen werden. Beachten Sie jedoch, dass es andere weit verbreitete Systeme gibt, z.B. SVN und Mercurial.

Wichtige Begriffe und Konzepte

  • repository oder repo - enthält den gesamten Code für ein einzelnes Projekt sowie den gesamten Änderungsverlauf jeder Datei.
  • working directory - Wenn Sie Ihren Code bearbeiten, nehmen Sie Änderungen an Ihrem Arbeitsverzeichnis vor. Wenn Sie diese Änderungen im Repo speichern möchten, müssen Sie ein Commit durchführen. Wenn alle Änderungen im Arbeitsverzeichnis in das Repo übernommen wurden, ist das Arbeitsverzeichnis clean.
  • commit - Eine Gruppe von Änderungen an Quelldateien. Normalerweise werden diese Änderungen zusammengefasst, sodass sich jedes Commit auf eine einzelne Fehlerbehebung oder Funktion bezieht.
  • branch - Die Arbeit an einem Projekt kann in Branchgstellen organisiert werden. Auf diese Weise kann ein Entwickler oder eine Gruppe von Entwicklern an einer Funktion arbeiten, während ein anderer Entwickler an einer anderen Funktion arbeitet.
  • merge - bringt die Änderungen in zwei Branches zusammen. Oft kann dies automatisch von Git durchgeführt werden. Wenn jedoch conflicts auftreten, müssen Sie Git möglicherweise manuell mitteilen, wie die Dateien zusammengeführt werden sollen.

Repository Management Services

Wenn Sie die Versionskontrolle verwenden, erstellen Sie ein repository oder repo. Am häufigsten wird dieses Repo auf einem Repository Management Service gehostet. Für die Zwecke dieses Tutorials werden wir unser Repo nirgendwo hosten, sodass Sie sich darauf konzentrieren können, die Versionskontrolle tatsächlich zu verwenden. Wenn Sie möchten, können Sie sich über diese Repository-Verwaltungsdienste informieren, und Sie sollten in der Lage sein, dieses Wissen auf sie anzuwenden, wenn Sie dies wünschen.

Einige Beispiele hierfür sind GitHub, Bitbucket, GitLab und Coding. Sie werden von Entwicklern auf der ganzen Welt häufig verwendet. Ich und viele andere verwenden GitHub, weil es eine große Anzahl von Open-Source-Projekten hostet. GitHub-Repos sind standardmäßig öffentlich, Sie können jedoch private Repos gegen eine monatliche Gebühr erstellen.

Anfangen

Erstellen einer App

Zu Beginn müssen Sie eine neue Anwendung in Xcode erstellen. Für diese App können Sie eine beliebige Vorlage verwenden. Wenn Sie eine aktuelle App mit einem Git-Repository haben, können Sie diese auch für dieses Tutorial verwenden.

So sollte die IDE aussehen, bevor Sie Ihr Projekt endgültig erstellen (wenn Sie den Speicherort für das Projekt festlegen müssen):

Figure 1 Creating an ApplicationFigure 1 Creating an ApplicationFigure 1 Creating an Application

Stellen Sie sicher, dass das Kontrollkästchen Git-Repository auf meinem Mac erstellen aktiviert ist, da dies sicherstellt, dass Ihr Projekt intern über das Repo verfügt. Wenn Sie sich später für ein Repository-Verwaltungssystem entscheiden, können Sie den gesamten Code push, und jedes Commit, das Sie jemals vorgenommen haben, wird angezeigt.

Terminal öffnen

Um zur Befehlszeile zu gelangen, müssen Sie das Terminal öffnen. Sie können dies auf zwei Arten tun. Sie können Launchpad öffnen und dort finden Sie das Terminal-Symbol im Ordner Other auf der ersten Seite von Launchpad. Oder Sie drücken die Command-Space auf Ihrer Tastatur und suchen in Spotlight nach Terminal.

Sobald Sie das Terminal geöffnet haben, sollte Folgendes angezeigt werden.

Figure 2 Blank Terminal WindowFigure 2 Blank Terminal WindowFigure 2 Blank Terminal Window

Dies wird als "Eingabeaufforderung" bezeichnet. Sie sehen das aktuelle Verzeichnis, dann Ihren Benutzernamen, gefolgt von einem $.

Gut! Jetzt können Sie lernen, wie Sie die Versionskontrolle auf dem Terminal verwenden.

Terminalbefehle Spickzettel

Hier sind einige der grundlegenden Befehle, über die ich in meinem Tutorial über die ersten Schritte mit Terminal geschrieben habe. Sie müssen diese kennen, um das Terminal effektiv nutzen zu können.

Hilfe

  • help - Wie der Name schon sagt, können Sie diesen Befehl in das Terminal eingeben, um eine Liste der verschiedenen Befehle abzurufen.
  • man <command name>  - Dieser Befehl ähnelt dem vorherigen Befehl genau und zeigt Ihnen genau, was ein Befehl tut (und bietet Ihnen eine vollständige Dokumentation), ohne dass Sie Google danach suchen müssen.

File Management

  • ls - Listet alle Inhalte im aktuellen Verzeichnis auf. Dieser Befehl ist nützlich, wenn Sie den Finder nicht zum Durchsuchen von Dateien verwenden möchten. Sie können sie einfach mit diesem Befehl in Ihrem Terminal auflisten.
  • cd <directory name> - Mit diesem Befehl werden Verzeichnisse geändert. Wenn Sie nur eine cd schreiben, verlassen Sie das aktuelle Verzeichnis. Nachdem Sie ls verwendet haben (um die Verzeichnisse anzuzeigen), können Sie den Namen des Verzeichnisses schreiben, das Sie eingeben möchten.

Einstellungen ändern

  • defaults <setting to change>: Mit diesem Befehl werden die Standardsystemeinstellungen geändert, von denen einige ohne Verwendung des Terminals nicht geändert werden können.
  • caffeinate - Wie der Name schon sagt, wird dieser Befehl verwendet, um zu verhindern, dass Ihr Mac gedimmt, ausgeschaltet oder in den Ruhezustand versetzt wird. Um dies zu beenden, müssen Sie nur Strg-C drücken.

Textbearbeitung

  • vim <file name> - dies ist einer meiner Favoriten. Sie können Textdateien mit dem Standard-TextEdit (oder einem beliebigen GUI-basierten Editor) bearbeiten. Vim ist jedoch im Grunde ein Befehlszeilen-Texteditor, dh er funktioniert vollständig innerhalb des Terminals.

Vernetzung

  • ping <URL or IP Adress>: Mit diesem Befehl können Sie die Serverantwortzeit einer angegebenen URL oder IP-Adresse überprüfen. Dies ist möglicherweise nicht für jeden Entwickler nützlich, aber es ist schön zu wissen.

Admin

  • sudo <action to perform> - eine Möglichkeit, die Berechtigungen Ihres Benutzers zu überschreiben und ein Superuser des Computers zu werden. Sie werden aufgefordert, ein Administratorkennwort einzugeben, wenn Sie es verwenden.

Verschiedene Git-Befehle

Nachdem Sie einige grundlegende Terminalbefehle gesehen haben, lernen wir die verschiedenen Funktionen von Git kennen. Ich werde sie nicht alle behandeln, aber ich werde Sie über die wichtigsten unterrichten, die Sie in der täglichen Entwicklung verwenden werden. Wenn Sie jemals weitere Informationen benötigen, können Sie einfach die git help in Ihrem Terminal ausführen, um Details zu erhalten. Wenn dies für eine vollständige Dokumentation nicht ausreicht, können Sie man git ausführen, um die Handbuchseite abzurufen.

So sehen die Hilfeseiten aus:

Figure 3 Help PageFigure 3 Help PageFigure 3 Help Page

Ein Projekt erstellen

  • git clone {remote-repo-link} - Wenn Sie ein Repository von einem Repository-Verwaltungsdienst klonen möchten, können Sie diesen Befehl zusammen mit der URL verwenden, um eine lokale Kopie auf Ihrem Computer abzurufen.
  • git init - Wenn Sie ein neues Repository aus einem vorhandenen Ordner erstellen, können Sie diesen Befehl verwenden. Der aktuelle Ordner wird als neues Repo initialisiert. Normalerweise tun Sie dies, wenn Sie zum ersten Mal ein Projekt erstellen.

Änderungen übernehmen

  • git status: Gibt an, welche Dateien in Ihrem Arbeitsverzeichnis geändert wurden. Wenn Sie Dateien geändert haben, ist es möglicherweise an der Zeit, ein Commit durchzuführen!
  • git commit -am "{helpful commit message}" - Wenn Sie einige Änderungen an Ihrem Projekt vorgenommen haben (z.B. wenn Sie eine einfache Funktion abgeschlossen oder eine Fehlerbehebung vorgenommen haben), sollten Sie Ihre Änderung festschreiben. Stellen Sie sicher, dass Sie eine präzise und klare Commit-Nachricht bereitstellen, da dies anderen Entwicklern hilft, zu verstehen, was Sie getan haben und warum.
  • git add {filename} oder git add --all - Wenn Sie Ihrem Repo eine neue Datei hinzufügen, müssen Sie diese dem Repo hinzufügen, bevor Sie sie festschreiben. Verwenden Sie den Befehl add.

Repository Branches

  • git branch {branch-name?} - Mit diesem Befehl können Sie entweder die aktuellen Branches auflisten oder einen neuen erstellen.
  • git merge {branch-name} - Fügt den aktuellen Branch mit dem angegebenen Branch zusammen. Dadurch wird der Code im aktuellen Branch mit dem benannten kombiniert.
  • git checkout {branch-name} - Wechselt zum angegebenen Branch. Dadurch wird einfach der aktuelle Branch beiseite gelegt und der andere Branch aktiviert.

Repository Management Systems

  • git push: Aktualisiert das Repository im Repository-Verwaltungssystem. Nachdem Sie die Änderungen vorgenommen haben und sicher sind, dass Ihr Code ordnungsgemäß funktioniert, können Sie Ihren Code verschieben, damit andere Mitglieder den Code sehen und abrufen können.
  • git pull - Aktualisiert Ihre lokale Arbeitskopie des Repos, um die neuesten Aktualisierungen wiederzugeben, die an das Repository-Verwaltungssystem gesendet wurden. Es ist eine gute Idee, dies zu tun, bevor Sie Änderungen vornehmen, wenn Sie in einem Team arbeiten.

Das sind einige der Hauptbefehle, die Sie in der Versionskontrolle verwenden, um loszulegen. Bevor wir dieses Lernprogramm beenden, werfen wir einen Blick auf einige dieser Befehle mit dem zuvor erstellten Xcode-Projekt.

Beispiel für die Verwendung von Git mit einem Xcode-Projekt

Schauen wir uns nun einige Beispiele für die Verwendung von Befehlszeilen-Git mit dem Xcode-Projekt an, das wir zuvor in diesem Tutorial erstellt haben. Beachten Sie, dass wir die obigen Terminalbefehle verwenden. Stellen Sie daher sicher, dass Sie sich weiterhin auf sie beziehen oder sie auswendig lernen.

Zum Projektverzeichnis navigieren

Bevor wir beginnen, müssen Sie mit den oben genannten Befehlen zum Projektverzeichnis navigieren (Hinweis: Verwenden Sie die Befehle cd und ls). Sobald Sie dort sind, führen Sie ls aus und stellen Sie sicher, dass Sie so etwas haben:

Figure 4 File NavigationFigure 4 File NavigationFigure 4 File Navigation

Ta-da! Jetzt befinden Sie sich in Ihrem Projektverzeichnis und können alles tun, was Sie für Ihr Projekt benötigen. Beobachten Sie einfach, wie wir den Übergang erfassen und ausführen.

Commit

Commit Ihres Codes ist das, was Sie beim Programmieren am häufigsten tun. Sobald Sie eine funktionierende Änderung vornehmen, empfiehlt es sich, diese zusammen mit detaillierten Kommentaren festzuhalten.

Eine Änderung vornehmen

Nehmen Sie zunächst eine Änderung am Xcode-Projekt vor. Für meine füge ich einfach die folgende Zeile Dummy-Code in meine viewDidLoad() -Methode ein:

Status abrufen

Nachdem Sie eine oder zwei Codezeilen hinzugefügt (oder abgezogen) haben, können Sie den Status Ihres Projekts überprüfen. Fügen Sie dazu den folgenden Befehl (abzüglich der Eingabeaufforderung $) in Ihr Terminalfenster ein:

Sie werden so etwas sehen:

Figure 6 Modified FileFigure 6 Modified FileFigure 6 Modified File

Die von Ihnen geänderte Datei wird rot hervorgehoben, um anzuzeigen, dass keine Änderungen festgeschrieben wurden.

Hinzufügen von Dateien zum Staging-Bereich

Wenn Sie nur bestimmte Dateien festschreiben möchten, können Sie dies über einen "Staging-Bereich" tun, in dem nur diese Dateien festgeschrieben werden. Um alle geänderten Dateien zum "Staging-Bereich" hinzuzufügen, müssen Sie lediglich die folgende Codezeile ausführen:

Das angezeigte -A-Flag bedeutet, dass alle von Ihnen geänderten Dateien hinzugefügt werden (-A ist für alle, und Sie können auch git add --all schreiben).

Führen Sie einfach die folgenden Schritte aus, um festzustellen, ob Ihre Dateien zum Festschreiben bereit sind:

Sie werden so etwas sehen:

Figure 7 Staging-Area FileFigure 7 Staging-Area FileFigure 7 Staging-Area File

Sehen? Dieselbe Datei, die rot war, ist jetzt grün, was darauf hinweist, dass Sie sie erfolgreich für das Festschreiben vorbereitet haben.

Commiting Ihres Codes

Um Ihren Code endgültig bearbeiten, müssen Sie lediglich den folgenden Befehl in Ihrem Terminal ausführen und zwischen den Anführungszeichen eine Nachricht hinzufügen.

Das Flag -m teilt dem Terminal mit, dass Sie Ihrer Datei eine Nachricht hinzufügen, und es ist ziemlich wichtig, mit dieser Nachricht klar zu sein. Diese Meldungen sind entscheidend, um die Änderungen an Ihrem Projekt zu verfolgen.

Jetzt haben Sie Ihr erstes Commit gemacht! Sie sind auf dem richtigen Weg, um Ihren Code einfacher und sicherer zu machen.

Branches

Das zweithäufigste, was Sie als Entwickler tun, ist das Erstellen, Zusammenführen und Verwenden von Branches, um Ihren Code zu sortieren und Funktionen zu isolieren, bevor Sie sie an Kunden ausliefern.

Neuen Branch erstellen

Standardmäßig befinden Sie sich in der sogenannten "Master" -Branchstelle. Das ist der Hauptbranch, in dem schließlich alles landen sollte. Die beste Vorgehensweise, insbesondere in einem Team, besteht darin, in den eigenen Niederlassungen an neuen Hauptfunktionen zu arbeiten, die nach Abschluss wieder in den Master integriert werden.

Um das Arbeiten mit Branches zu üben, erstellen wir einen neuen Branch. Führen Sie dazu den folgenden Befehl aus:

Sie können den Branch beliebig benennen.

Um den neuen Branch anzuzeigen, können Sie Folgendes eingeben:

Wenn Sie diesen Befehl ausführen, sehen Sie ungefähr Folgendes:

Figure 8 BranchesFigure 8 BranchesFigure 8 Branches

Beachten Sie, dass Sie zwei Branches sehen können: master und my-first-branch (oder wie auch immer Sie Ihren Branch benannt haben). Außerdem sehen Sie, dass der master Branch ein Sternchen aufweist, das angibt, dass Sie sich derzeit in diesem Branch befinden.

Auschecken eines aktuellen Branch

Wenn Sie jemals zu einem anderen vorhandenen Branch wechseln müssen, müssen Sie diesen Branch checkout. Wenn Sie dies tun, verlassen Sie den aktuellen Branch und der gesamte Code bleibt intakt (zusammen mit Ihren lokalen Änderungen), aber Ihr Arbeitsverzeichnis wird mit dem Code aus dem Branch gefüllt, den Sie ausgecheckt haben.

Probieren Sie es mit folgendem Befehl aus:

Sie sollten eine Bestätigung erhalten, die ungefähr so aussieht:

Figure 9 Switched BranchesFigure 9 Switched BranchesFigure 9 Switched Branches

Jetzt sind Sie zu diesem Branch gewechselt, und es sollte eine saubere Tafel sein. Um dies zu bestätigen, führen Sie den git status aus, um zu überprüfen, ob geänderte Dateien vorhanden sind.

Zusammenführen von Branches

Nachdem Sie die Änderungen vorgenommen haben, führen Sie den Branch mit dem Hauptzweig zusammen. Wir haben noch keine Änderungen vorgenommen. Lassen Sie uns dies jetzt tun, bevor wir die beiden Branches zusammenführen.

Nehmen Sie eine weitere Änderung am Xcode-Projekt vor. Für meine füge ich einfach die folgende Zeile Dummy-Code in meine viewDidLoad() -Methode ein:

Sie können jede gewünschte Änderung vornehmen. Stellen Sie einfach sicher, dass Sie wissen, welche Datei und welche Änderungen Sie vorgenommen haben.

Führen Sie anschließend die folgende Codezeile erneut aus:

Jetzt sollte der Dateiname rot angezeigt werden, und Sie müssen einen Commit durchführen, bevor Sie diese Änderung wieder in Ihrem Hauptbranch zusammenführen. Ich vertraue darauf, dass Sie wissen, wie das geht. Fahren wir also mit dem nächsten Schritt fort. Stellen Sie sicher, dass das Commit mit dem git status erfolgreich war.

Inzwischen sollten Sie den Code festgeschrieben haben. Machen wir uns also bereit, die beiden Branches zusammenzuführen. Führen Sie zunächst den folgenden Befehl aus:

Dieser Befehl wechselt zum master Branch die Zusammenführung mit dem anderen von uns erstellten Branch vorzubereiten. Führen Sie zum Zusammenführen den folgenden Befehl aus:

Sie sollten eine Bestätigung erhalten, die so aussieht:

Figure 11 Merging with MasterFigure 11 Merging with MasterFigure 11 Merging with Master

Jetzt wurden Ihre Änderungen aus dem Feature-Branch wieder in den Master übernommen. Wenn sich der Master-Branch seit dem Erstellen des Branches geändert hat, versucht Git, die Änderungen Ihres Feature-Branchs automatisch mit dem Master zu kombinieren. Wenn dies nicht automatisch möglich ist, werden Sie aufgefordert, Konflikte manuell zu lösen. Wenn dies nicht automatisch möglich ist, werden Sie aufgefordert, Konflikte manuell zu lösen.

Jetzt wissen Sie, wie Sie Branches zusammenführen, erstellen und mit nur dem Terminal zwischen ihnen wechseln können!

Abschluss

Wie Sie sehen, ist es nicht allzu schwierig, mit Ihrem Projekt eine Versionskontrolle durchzuführen, und die Belohnungen sind es wert. Die Versionskontrolle ist eine bewährte Methode für die Kernentwicklung, und Sie sollten damit vertraut sein, wenn Sie in einem professionellen Kontext arbeiten möchten.

Ich hoffe, dieser Beitrag hat Ihnen das Vertrauen gegeben, die Versionskontrolle täglich zu verwenden. Wenn Sie mehr über Git erfahren möchten, sehen Sie sich einige unserer animierten Lehrvideos hier auf Envato Tuts+ an.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.