Git-Meisterschaft: Verstehen von entfernten und verfolgten Zweigen
11:27, 04.12.2023
Erkundung entfernter Zweigstellen
Git-Zweige sind isolierte und sichere Teile von Entwicklungen, die vom Hauptprojekt getrennt sind. Zweige werden verwendet, um Fehler zu beheben, neue Funktionen zu erstellen, Ideen zu testen und das Risiko zu minimieren, den bestehenden Code des Programms zu ruinieren.
Entfernte Zweige helfen Benutzern bei der Zusammenarbeit an einem bestimmten Projekt. Diese Zweige werden auf GitHub gehostet, das üblicherweise als Ursprungs-Repository bezeichnet wird. Wenn der Benutzer einige lokale Änderungen vorgenommen hat, ist es möglich, diesen erstellten lokalen Zweig in das ursprüngliche oder entfernte Repository zu verschieben. Auf diese Weise ermöglichen Sie anderen Benutzern den Zugriff auf diesen speziellen Code.
Die entfernten Zweige sind also Kopien der lokalen Zweige in den entfernten Repos.
Initiierung eines neuen lokalen Repositorys
Um ein praktisches Verständnis dafür zu bekommen, wie alles wirklich funktioniert, wollen wir ein lokales Repository erstellen. Beginnen Sie dazu mit der Erstellung eines neuen Verzeichnisses und fügen Sie einige Dateien darin ein. Danach führen Sie $ git init aus. Auf diese Weise können Sie diese Dateien nun als nicht verfolgt (untracked) erkennen, was Sie mit dem Befehl $ git status überprüfen können. Um weitere Dateien hinzuzufügen, können Sie - $ git commit -m eingeben. Das lokale Repository mit ein paar Dateien wurde erfolgreich erstellt, fahren wir also mit dem entfernten Repository fort.
Initiierung eines neuen entfernten Repositorys
Für die Erstellung des entfernten Repositorys sollten Sie zunächst einen der benötigten Dienste auswählen. Die beliebtesten Optionen sind Bitbucket und GitHub. Sobald Sie einen Dienst ausgewählt und alles eingerichtet haben, können Sie mit den nächsten Schritten fortfahren.
Hochladen von Änderungen in ein entferntes Repository
Nach der Einrichtung des entfernten Projektarchivs müssen Sie einen Verweis auf dieses Projektarchiv in das lokale Projektarchiv einfügen. Um dies zu tun, müssen Sie Folgendes eingeben:
$ git remote add something [remote-url]
Wie Sie sehen, haben wir diesem entfernten Repository something genannt, aber Sie können auch ein beliebiges anderes Wort verwenden. Um zu überprüfen, ob alles erfolgreich verbunden wurde, verwenden Sie den Befehl:
$ git remote
Um genauere Informationen über das entfernte Repository zu erhalten, müssen Sie dem oben genannten Befehl -v hinzufügen.
Der nächste Schritt ist das Pushen in das entfernte Repository mit dem folgenden Befehl:
$ git push something master
Wenn Sie diesen Befehl eingeben, wird ein Master-Zweig im entfernten Projektarchiv erstellt und der Verweis wird im lokalen Projektarchiv erstellt. Wenn Sie zu einem entfernten Projektarchiv pushen, aber noch keinen Zweig erstellt haben, wird dies automatisch getan. Der automatisch generierte Name enthält die folgenden Informationen remotes/remote-name/branch-name, in unserem Fall ist es remotes/something/master.
Überprüfen Ihrer entfernten Zweigstellen
Um alle entfernten Zweige zu überprüfen, können Sie $ git branch -r ausführen. Um alle vorhandenen Zweige, einschließlich der lokalen und entfernten, zu überprüfen, sollten Sie $ git branch -r ausführen:
$ git branch -a
Wenn Sie das Projekt zum ersten Mal überprüfen, sind der Master-Zweig und der anfängliche Remote Brunch normalerweise identisch. Wenn jedoch andere Benutzer zum Projekt hinzugefügt werden, wird auch dieser Zweig irgendwann aktualisiert.
Übergang zu entfernten Zweigstellen
Der Übergang zu den entfernten Zweigstellen ist einfach: Tippen Sie einfach:
$ git checkout origin/master
Wie Sie sehen, ist es nicht nötig, in dieser Zeile "remotes/in" einzufügen. Der Vorteil ist, dass es sich um einen lokalen Vorgang handelt, der durch die exakte Kopie des entfernten Masterzweigs möglich ist.
Halten Sie Ihre Außenstellen auf dem neuesten Stand
Um die lokalen Änderungen an das entfernte Projektarchiv zu senden, geben Sie den folgenden Befehl ein:
$ git push
Es wird dringend empfohlen, vor der Ausführung dieses Push-Befehls mit $ git fetch zu beginnen. Wenn Sie einen neuen Zweig erstellt haben, ist es nicht notwendig, mit fetch zu beginnen. Da sich dieser Zweig nicht im entfernten Repository befand, gibt es nichts zu holen.
Für die Synchronisierung sollten Sie den folgenden Befehl eingeben:
$ git fetch [remote-name]
Bei dieser Synchronisierung werden alle entfernten Zweige in das lokale Repository kopiert. Wenn sich solche Zweige im lokalen Repository befinden, werden sie aktualisiert.
Die Notwendigkeit, "Fetch" vor "Push" auszuführen
Fetch' sollte durchgeführt werden, bevor neue Änderungen in das entfernte Repository übertragen werden. Dies ist ein sehr wichtiger Punkt, den Sie vor jeder geplanten Anpassung beachten sollten. Wenn ein anderer Benutzer etwas in das entfernte Repository übertragen hat, müssen die Änderungen "geholt" und dann in die lokalen Zweige "zusammengeführt" werden. Erst danach können Sie mit dem "Pushing" Ihrer Änderungen beginnen. Benutzer können praktisch nichts veröffentlichen, solange der lokale Zweig nicht aktualisiert ist.
Der Abrufprozess ist für den Master-Zweig ebenso notwendig wie für alle anderen Zweige. Denken Sie daran, dass Sie einen Zweig nicht aktualisieren müssen, wenn Sie nicht vorhaben, eine bestimmte Änderung daran vorzunehmen. Diese Aktualisierungen sind nur wichtig, wenn Sie Änderungen einleiten.
Simulation der Beiträge eines Teammitglieds
Um ein neues Mitglied im Projekt zu simulieren, sollten Sie zunächst einen neuen Ordner im System erstellen. Er sollte nicht Teil dieses Projektarchivs oder seiner Unterordner sein. Danach klonen Sie das Repository mit dem folgenden Befehl:
$ git clone [remote-url]
Es sind noch ein paar weitere Schritte erforderlich, wie z. B. das Verweisen auf ein neues Repository, das Commit und das Pushing mit der folgenden Befehlszeile:
$ git add
$ git commit -m
$ git push something master
Einrichtung von Tracking-Zweigen
Tracking-Zweige sind Arten von lokalen Zweigen, die direkt mit den entfernten Zweigen verbunden sind. Der Nutzen dieser Tracking-Zweige liegt in der automatischen Erkennung des Zweigs und des Abschnitts, der für das Pushing verwendet werden soll.
Diese Art von Zweigstelle ist wie die anderen, aber sie enthält spezifische Tracking-Daten.
Das übliche Szenario von git push ist das folgende: $ git push something master. Das bedeutet, dass das entfernte Repo mit dem Namen something und das Brunch mit dem Namen master ein Update erhalten. Falls ein solcher Zweig bereits im entfernten Repository erstellt wurde, funktioniert alles einwandfrei, aber andernfalls geht es schief. Um diesen Prozess zu vereinfachen, können wir Tracking-Zweige verwenden.
Neue Tracking-Zweige erstellen
Um zu veranschaulichen, wie der gesamte Prozess der Erstellung des Tracking-Zweigs aussieht, erstellen wir ihn aus dem lokalen Master-Zweig. Der folgende Befehl wird verwendet, um diesen Zweig zu erstellen - Tracking Remote Master Branch:
$ git push -u etwas master
Wie Sie sehen, ist es wirklich einfach und es gibt keine schwierigen Schritte bei der Verwaltung dieses Prozesses. Wenn Sie keine lokalen Änderungen vornehmen und diese pushen, gibt Git die Meldung zurück, dass alles von der ursprünglichen Quelle verfolgt wird.
Wenn Sie diesen Befehl einmal ausgeführt haben, ist der Prozess so viel einfacher. Sie geben einfach $ git push oder pull ein und tun, was immer Sie wollen, ohne jedes Mal den Namen des Zweigs und den Namen der Gegenstelle eingeben zu müssen, wenn Sie etwas pushen oder ziehen wollen. Die Befehlszeile für pull sieht genauso aus:
$ git pull
Die Erstellung eines neuen Zweigs ist ebenfalls sehr einfach: Sie fügen einfach -u zu der Zeile hinzu, und das sieht dann so aus:
$ git push -u remote-name branch-name
Es besteht keine Notwendigkeit, dies während des anfänglichen Pushs an das entfernte Repo zu tun. Sie können diese Anpassung jederzeit vornehmen, wenn sie erforderlich ist.
Zusätzliche Vorteile der Verwendung von Tracking-Zweigen
Die Verfolgungszweige sind sehr nützlich, um in einer kürzeren Version zu pushen und zu ziehen. Außerdem können die Benutzer leicht feststellen, ob sie im Vergleich zum entfernten Zweig zurück oder voraus sind. Um diese Information zu überprüfen, sollten Sie den nächsten Befehl verwenden:
$ git status
Wenn Sie einen regulären Zweig haben, sind die Informationen über die Aktualisierung nicht so schnell verfügbar. Mit dem Tracking-Zweig erhalten Sie sofort eine Ausgabe. So können Sie feststellen, ob es notwendig ist, neue Änderungen vorzunehmen oder Ihre Änderungen in das Projekt zu übernehmen.
Wenn Sie diesen Befehl verwendet haben und die Ausgabe sehen, dass der Zweig auf dem neuesten Stand ist, müssen Sie noch einen weiteren Schritt tun. Hier gibt es einen Trick: Falls ein anderer Benutzer das entfernte Projektarchiv aktualisiert, erhalten Sie trotzdem eine Benachrichtigung, dass alles aktualisiert wurde. Das liegt daran, dass das System den lokalen Zweig prüft, aber nicht das entfernte Projektarchiv. Um ein gültiges Ergebnis zu erhalten, müssen Sie den fetch-Befehl und dann noch einmal den status-Befehl verwenden. Hier sehen Sie also, dass der Zweig zurückliegt.
Automatisch einen Verfolgungszweig beim Klonen erhalten
Das Klonen verfügt über zahlreiche automatische Funktionen, ohne dass viele Einstellungen vorgenommen werden müssen. Wenn ein Benutzer ein Repository klont, werden die entfernten Zweige im neuen Repository genauso erstellt wie im entfernten Repository. Darüber hinaus wird der Standard-Master-Zweig erstellt.
Abgesehen davon erhält ein geklontes Repository auch eine Einrichtung des lokalen Zweigs, um den entfernten Zweig zu verfolgen. Das ist wirklich praktisch und einige Benutzer bemerken diese Funktionen nicht einmal. Sie nutzen einfach die Verfolgungszweige und kümmern sich nicht um deren Erstellung oder ähnliches.
Natürlich gibt es viele automatische Szenarien, und das ist fantastisch, aber was ist mit anderen Dingen, die nicht standardmäßig generiert werden? Lassen Sie uns ein echtes Problem schaffen, das bei jedem neuen Benutzer auftreten kann, und versuchen Sie, es auf die effektivste Weise zu lösen.
Ein Teammitglied hat zum Beispiel ein Repository mit einigen Zweigen geklont. Das Problem dabei ist, dass das System automatisch nur Remote-Zweige und lokale Master-Zweige anlegt. Andere lokale Zweige sollten vom Benutzer selbständig erstellt werden, wie also? Wenn ein Benutzer lokalen Zugriff auf einen bestimmten Zweig benötigt, sollte er von einem entfernten Zweig in einen lokalen Zweig geklont werden. Ein weiterer wichtiger Punkt ist das Hinzufügen eines Verfolgungsmechanismus für diesen geklonten Zweig. Das hört sich nach 2 schwierigen Aufgaben an, aber eigentlich ist es nur eine einzige Zeile, die es ist:
$ git checkout -b [lokaler-zweig-name] [entfernter-name/zweig-name]
In der Ausgabe sehen Sie die Meldung, dass ein ausgewählter Zweig eingerichtet wurde, um den entfernten Zweig zu verfolgen.
Abschließende Überlegungen zur Git Mastery
Jetzt haben Sie ein grundlegendes Verständnis für die Remote- und Tracking-Zweige und dafür, wie man ein lokales Repository initiiert, sowie einige nützliche Befehle wie pull, push, clone, fetch und einige andere. All diese Informationen können für neue Benutzer ein wenig verwirrend sein, und das ist auch klar. Jede neue Technologieimplementierung ist nicht einfach zu meistern und erfordert nicht nur Grundkenntnisse, sondern auch viel Übung. Nur in der Praxis kann man mit Git und einer riesigen Liste von Befehlen, die man kennenlernt, mehr Erfahrung sammeln. Eine große Empfehlung für jeden Neuling ist es, mit den Befehlen und Zweigen zu üben, ein paar Repositories zu erstellen und alles wird verständlicher werden.
Bei Git geht es nicht nur um das Befolgen von Befehlen und ständiges Lernen, sondern vielmehr um das Erforschen und Testen der besten Strategien für ein bestimmtes Projekt. Je mehr Experimente Sie machen, desto einfacher wird es auf lange Sicht für Sie sein. Verschwenden Sie keine Zeit und beginnen Sie gleich mit kleinen Projekten!
FAQ
Was ist das Konzept der Verfolgung von Beziehungen in Git?
Tracking-Beziehungen oder Tracking-Zweige sind ein hervorragendes Konzept für die Automatisierung verschiedener Prozesse in Git. Dieser Tracking-Zweig verbindet den lokalen Zweig mit dem entfernten Zweig, so dass es einfacher ist, Push/Pull durchzuführen. Der Tracking-Zweig weiß automatisch, welcher Zweig und welcher Sever für Push- und Pull-Zwecke zu wählen ist, und Sie müssen nicht alles manuell eingeben.
Welche Bedeutung hat der Aufbau von Verfolgungsbeziehungen?
Die Bedeutung dieses Verfolgungsprozesses liegt in der Automatisierung und Vereinfachung mehrerer wichtiger Prozesse in Git. Jetzt müssen die Benutzer nicht jedes Mal, wenn sie einen Push- oder Pull-Vorgang durchführen, Informationen über einen Server und einen bestimmten Zweig hinzufügen. Mit einem einzigen Befehl können Sie diesen Prozess vereinfachen und zusätzliche Informationen für den nächsten Prozess ausschließen.
Wie wird die Überwachung einer entfernten Zweigstelle durchgeführt?
Das Verfahren zur Überwachung eines entfernten Zweigs ist wichtig für die Zusammenarbeit mit den Benutzern am selben Projekt. Tools wie Git wurden ursprünglich entwickelt, um eine gute Zusammenarbeit zu ermöglichen und den Programmierern zu helfen, alle verfügbaren Änderungen innerhalb des Projekts zu verfolgen. Die verschiedenen Funktionen und Versionen können mit nur wenigen Befehlen, die Sie kennen sollten, leicht überwacht werden. Um beispielsweise Zweige zu erstellen/löschen/aufzulisten, kann der folgende Befehl verwendet werden: git branch. Git fetch wird verwendet, um Referenzen aus dem entfernten Projektarchiv zu holen und sie im lokalen Projektarchiv zu speichern. Ein weiterer hilfreicher Befehl für den Wechsel zwischen Funktionen in einem Repo ist git checkout.