Git definiert einen Versionskontrollprozess dafür, wie Projekte geteilt werden sollen. Es gibt viele Websites, auf denen Sie Ihre Git-Projekte hosten können. GitHub ist die beliebteste Option, Bitbucket ist eine weitere beliebte Alternative, beide ermöglichen kostenlose Konten, die unbegrenzt öffentliche oder private Repositorys erstellen können. GitLab bietet eine selbst gehostete Alternative, die eine private Entwicklung ermöglicht, ohne auf das Hosting von Drittanbietern angewiesen zu sein.
Der Vorgang zum ersten Herunterladen eines Git-Repositorys wird als Klonen bezeichnet. Das Klonen umfasst alle Informationen über das Repository zu diesem Zeitpunkt. Um das Repository jedoch im Laufe der Zeit auf dem neuesten Stand zu halten, müssen Sie neue Versionen herunterladen. Öffnen Sie dazu einfach ein Terminalfenster im Verzeichnis mit der lokalen Version des Repositorys und geben Sie den Befehl „git pull“ ein.
Die Bedienung dieses Befehls ist besonders einfach, wenn Sie nur eine aktualisierte Version des Repositorys herunterladen möchten; die lokale Version wird aktualisiert, damit sie mit der Remote-Version übereinstimmt. Möglicherweise stellen Sie jedoch fest, dass es zu Problemen kommen kann, wenn Sie Änderungen an Ihrer lokalen Version vorgenommen haben.
Der Befehl „git pull“ führt eigentlich zwei separate Befehle aus „git fetch“ und „git merge FETCH HEAD“. Der Unterbefehl „git fetch“ holt sich gezielt die neueste Version aus dem Online-Repository und speichert sie temporär. Der Unterbefehl „git merge FETCH HEAD“ führt dann Ihre lokalen Änderungen mit der heruntergeladenen Version zusammen, wobei neuere Commits bevorzugt werden.
Tipp: Ein „git-Commit“ ist das Einreichen einer Änderung. Es ist möglich, mehrere lokale und entfernte Commits zu haben, die dasselbe oder unterschiedliche Dinge tun. Lokale Commits sind für die Remote-Version erst sichtbar, wenn die Änderungen übertragen wurden. Jeder Commit gibt genau an, welche Änderungen vorgenommen wurden, und enthält einen Zeitstempel.
Konflikte zwischen lokalen und Remote-Versionen
Im Idealfall treten in einem Zusammenführungsszenario keine Konflikte auf und der Zusammenführungsprozess wird automatisch abgeschlossen. Zusammenführungen können besonders einfach sein, wenn nur wenige Änderungen vorgenommen wurden oder wenn Ihre lokalen Änderungen keine Remote-Änderungen beeinträchtigen. Wenn es jedoch widersprüchliche komplexe Änderungen am gleichen Teil des Codes gibt, wird Git einen Merge-Fehler ausgeben.
An dieser Stelle können Sie die Zusammenführung entweder mit dem Befehl „git merge –abort“ abbrechen oder versuchen, die Konflikte manuell zu lösen. Die Befehle „git mergetool“ und „git diff“ liefern ein grafisches Beispiel für die Unterschiede, die helfen sollen, möglichst einfach zu erkennen, welche Änderungen manuell vorgenommen werden müssen, damit die Zusammenführung abgeschlossen werden kann. Nachdem Sie alle Konflikte gelöst haben, geben Sie den Befehl „git merge –continue“ ein, um die Zusammenführung abzuschließen.
Der Befehl „git mergetool“ öffnet ein grafisches Tool wie dieses, das Ihnen hilft, Konflikte manuell zu lösen.