So verwenden Sie Git Branches zur Strukturierung Ihres Programmierprojekts

So verwenden Sie Git Branches zur Strukturierung Ihres Programmierprojekts / Programmierung

Filme und Fernsehen zeigen Programme als hektische Aktivität. Hollywood Hacks: Das Beste und Schlechteste Hacking in Filmen Hollywood Hacks: Das Beste und Schlechteste Hacking in Filmen Hollywood und Hacking kommen nicht miteinander aus. Zwar ist reales Hacken hart, aber beim Hacken von Filmen wird oft nur auf der Tastatur weggehauen, als ob Ihre Finger aus dem Stil geraten. Weiterlesen . Der Timer einer Bombe zählt herunter, und der nerdy Kumpel, der bis zu diesem Zeitpunkt eine Belastung war, arbeitet fieberhaft an einem Laptop. Der Code fliegt über den Bildschirm, bis er mit einer zufriedenstellenden Bestätigung die letzte Eingabetaste drückt klappern! Der Timer stoppt und alles ist wieder in der Welt. Das Programmieren ist jedoch nicht so. Dazu gehören Designdokumente, UI-Modelle und Code-Reviews. Und mehr als alles andere beinhaltet Trial and Error, vor allem wenn Sie ein Anfänger sind (wie ich).

Nun sind Sie möglicherweise bereits davon überzeugt, wie wichtig es ist, Ihre Codierungsprojekte in der Quellcodeverwaltung zu behalten. Was ist Git und warum sollten Sie Versionskontrolle verwenden, wenn Sie ein Entwickler sind? Was ist Git? Warum sollten Sie Versionskontrolle verwenden, wenn Sie ein Entwickler sind Als Webentwickler arbeiten wir meistens auf lokalen Entwicklungsseiten und laden dann einfach alles hoch, wenn wir fertig sind. Dies ist in Ordnung, wenn es nur Sie sind und die Änderungen klein sind. Wenn Sie all diese Versuche und Fehler in Ihr Repository übernehmen, wird dies zu einem großen und unordentlichen Projekt mit vielen Überarbeitungen führen. Die meisten Commits, die Sie machen, enthalten Dinge, die defekt sind. Warum also speichern? Der Idiot Ast Diese Funktion kann dazu beitragen, den ganzen chaotischen Code von den Dingen abzuhalten, von denen Sie wissen, dass sie funktionieren.

In diesem Artikel werden wir untersuchen, was das Verzweigen Ihres Codes bedeutet, wie dies zu tun ist, und wie Sie Aktualisierungen auf dem Computer verwalten können “Main” Ast.

Git-Zweig erstellen

Wir haben aus unserer Einführung in die Quellcodeverwaltung gelernt. Verwalten Sie Ihre Dateiversion wie ein Programmierer mit Git Verwalten Sie Ihre Dateiversion wie ein Programmierer Mit Git Programmiers erstellte Versionskontrollsysteme (VCS), um Probleme bei der Dateiversionskontrolle zu lösen. Schauen wir uns die Grundlagen der Versionskontrolle mit dem heutigen Top-System Git an. Lesen Sie mehr darüber, dass Sie ein neues Repository mit dem folgenden Befehl in einem Terminal erstellen können:

git init

Wenn Sie dies tun, wird ein verstecktes Verzeichnis in Ihrem aktuellen Pfad erstellt “.git.” Wenn Sie es nicht sehen können, konsultieren Sie einige unserer früheren Artikel über das Anzeigen von ausgeblendeten Dateien und Ordnern in Windows 10, 8.1 und 7 Die einfache Möglichkeit, versteckte Dateien und Ordner in Windows 10, 8.1 und 7 anzuzeigen 7 Möchten Sie versteckte Dateien und Ordner in Windows sehen? So zeigen Sie sie in Windows 10, 8.1 und 7 an, damit nichts vor Ihnen verborgen bleibt. Weitere Dateien anzeigen Dateien unter Mac OS X ausblenden und suchen Dateien unter Mac OS X ausblenden & suchen Unter Mac OS X gibt es keine einfache Möglichkeit, ausgeblendete Dateien unter Mac OS X schnell auszublenden oder anzuzeigen. Dies ist jedoch möglich. Weiterlesen . Dieses Verzeichnis enthält alle Informationen, die zum Aufbewahren des Revisionsverlaufs Ihrer Dateien erforderlich sind. Nachdem Sie den Dateimanager so eingestellt haben, dass er versteckte Dateien anzeigt, können Sie den Ordner .git öffnen und eine Reihe von Unterverzeichnissen anzeigen. Einer davon heißt “refs” (im Bild unten gezeigt) und seine “Köpfe” Das Unterverzeichnis enthält Listen für alle Niederlassungen in Ihrem Projekt. Am Anfang haben Sie nur einen, genannt “Meister.”

Das refs-Verzeichnis speichert den Zweig, nicht aber den Zweig. Zumindest nicht die Branche, die Sie sind derzeit verwendet. Diese Dateien werden im Arbeitsverzeichnis gespeichert (“~ / Temp / Post-Programming-Git-Zweig” im obigen Beispiel), so dass Sie auf normale Weise darauf zugreifen können. Dafür erstellen wir unsere erste Datei (genannt “first-file.txt”) im Arbeitsverzeichnis, d. draußen das Verzeichnis .git. Überprüfen Sie dies, indem Sie die vertrauenswürdigen Befehle des vorherigen Intro verwenden, um den Artikel zu verwalten. Verwalten Sie Ihre Dateiversion wie ein Programmierer mit Git. Verwalten Sie Ihre Dateiversion wie ein Programmierer. Mit Git Programmiers erstellte Versionskontrollsysteme (VCS), um Probleme bei der Dateiversionskontrolle zu lösen. Schauen wir uns die Grundlagen der Versionskontrolle mit dem heutigen Top-System Git an. Weiterlesen :

Jetzt sehen wir, dass das Arbeitsverzeichnis zwei Dateien hat, die von uns festgeschriebene und eine, die von git automatisch erstellt wurde (es enthält die Commit-Nachricht, die wir gerade eingegeben haben)..

Nun erstellen wir einen neuen Git-Zweig namens “testen”:

Git Zweigprüfung

Den Zweig auschecken und darin arbeiten

Wir können den obigen Befehl ohne Namen ausgeben, um eine Liste aller Verzweigungen zu erhalten sowie die, die wir gerade verwenden (d. H. Welche.) “geprüft”):

Wenn wir nun die Verzeichnisstruktur untersuchen, werden wir sehen “.git / refs / köpfe” hat jetzt zwei Dateien, jeweils eine für “Meister” und “testen.”

Jedes davon ist eine Liste der Commits, aus denen sich der Zweig zusammensetzt. Zum Beispiel, wenn wir das prüfen “Meister” verzweige mit dem “Git Log” Kommando, wir können eine Zeile für jedes Commit sehen, das für diesen Zweig gemacht wurde.

Der Prozess von “auschecken” Eine Verzweigung bedeutet, dass Änderungen, die Sie an Dateien vornehmen, Teil dieser Verzweigung sind, nicht jedoch andere Verzweigungen. Angenommen, wir checken den Testgit-Zweig mit dem folgenden Befehl aus:

git checkout testing

Dann fügen wir der Datei first-file.txt eine Textzeile hinzu, die Sie anschließend natürlich festschreiben. Wenn Sie zurück zum Hauptzweig wechseln, ist die Datei immer noch leer (das Symbol Katze Befehl zeigt den Inhalt einer Datei im Terminal an:

Aber zurück zum “testen” Zweig hat die Datei noch den hinzugefügten Text:

Aber im eigentlichen Verzeichnis sehen wir nur die einzige Datei “first-file.txt.” Wo sind dann diese beiden alternativen Versionen derselben Datei? Das .git-Verzeichnis berücksichtigt diese Änderungen, jedoch nicht so, wie Sie es erwarten.

Wie Git Dinge speichert

Wenn Sie ein Repository für andere Versionskontrollsysteme wie Subversion untersuchen, werden Sie feststellen, dass für jede einzelne Datei eine Kopie pro Revision beibehalten wird. Wenn Sie also ein Repository mit einer Datei haben, erstellen Sie zwei Zweige. Das Repo enthält zwei verschiedene Kopien dieser Datei. In der Tat verwenden Sie tatsächlich “svn copy” als Befehl zum Erstellen einer Verzweigung in Subversion! Andererseits arbeitet git mit dem Konzept von “Änderungen.”

Die obige Ausgabe zeigt uns den gesamten Inhalt von “Kofferraum” (SVN Version von “Meister”) wurde kopiert. Ein Blick in einen Dateimanager bestätigt dies:

Das “.Git / Objekte” Das Verzeichnis enthält alle diese kleinen Änderungen, und jedes wird mit einer ID verfolgt. Im Bild unten sehen Sie beispielsweise Dateien mit langen ID-Namen. Jeder lebt in einem Ordner mit zwei hexadezimalen Zeichen (8c und 8d unten).

Zusammen bilden diese Ordner- und Dateinamen die ID für eine bestimmte Änderung (eigentlich ein SHA1-Hash). Sie können deren Inhalt mit Hilfe der git cat-file Befehl. Anhand ihrer geänderten Daten sehen wir den Beginn “8d” kam zuerst und es zeigt nichts. Während der eine beginnt “8c” enthält die Textzeile, die wir der Datei im hinzugefügt haben “testen” Ast.

Der Imbiss ist, dass git Verzweigungen (einschließlich der Standardeinstellung) “Meister”) sind nicht getrennt “Ordner” Kopien von Dateien enthalten. Es handelt sich vielmehr um Listen von Änderungen, die im Laufe der Zeit an Dateien vorgenommen wurden. Dies ist effizienter im Hinblick auf die Speicherung, aber das Ergebnis ist das gleiche. Alles, was Sie in einem Git-Zweig machen (brechen?), Bleibt dort, bis Sie es zusammenführen.

Strategien für das Zusammenführen zurück zum Hauptzweig (Löschen oder Nicht Löschen?)

Angenommen, Sie hatten ein vorhandenes Projekt mit mehreren Dateien, in die Sie dann verzweigten “testen,” und haben daran gearbeitet. Jetzt möchten Sie diese Änderungen wieder in die “Meister” Ast. Das können Sie aus der “Meister” Ast:

Git Merge-Tests

Vorausgesetzt, es gibt keine Konflikte, die Veränderung bestehend aus dem neuen text wird sein angewendet zu “Meister.” Das Ergebnis ist “first-file.txt” wird in beiden Zweigen identisch sein. Es gab jedoch nie wirklich Alternativen Versionen der Datei.

Nun kommt die Frage, was mit der Branche zu tun ist. Es gibt zwei gängige Strategien für den Umgang mit Zweigen.

  1. Man soll einen Git-Zweig wie halten “testen” um herum zu spielen (oben gezeigt). Sie probieren einige Dinge aus, und wenn Sie sie zum Laufen bringen können, bringen Sie die Änderungen wieder zusammen “Meister.” Dann können Sie die Arbeit an diesem Zweig beenden oder sogar ganz loswerden. Das bedeutet dein “Meister” ist die stabilste Version des Codes, weil er nur Dinge enthalten sollte, von denen Sie wissen, dass sie funktionieren. Sie können diesen Ansatz auch als verwenden “Feature-Zweige.” Dies ist darauf zurückzuführen, dass ihr Zweck darin besteht, eine (oder mehrere) bestimmte Ergänzungen des Codes zu verfeinern.
  2. Ein anderer Ansatz besteht darin, alle Ihre Hauptaufgaben in der “Meister” Branch, Commit auf dem Weg. Wenn Sie mit der Funktionalität zufrieden sind, erstellen Sie darin einen Zweig, in dem Sie Fehler beheben und dergleichen. Dies führt zu mehr a “Zweig freigeben” (siehe unten), da sie mit der Veröffentlichung enden. Es bedeutet auch dein “Meister” Zweig ist typischerweise die instabilste Version von Ihrem Code.

Verwenden Sie die für Sie am besten geeignete Methode

Der erste Ansatz ist hier häufiger bei der Arbeit mit Git. Die anderen Funktionen (insbesondere Tags) erleichtern das Markieren einer bestimmten Momentaufnahme des Codes als “stabil.” Es eignet sich auch besser für größere Gemeinschaftsprojekte. Wenn Sie jedoch an Ihren eigenen persönlichen Projekten arbeiten, können Sie das tun, was für Sie am sinnvollsten ist. Das Tolle an der Verwendung von git ist, dass Sie alle Ihre Änderungen erfassen, sodass Sie immer zurückgehen und etwas finden können. Und wenn Sie Ihr Projekt mit Git-Zweigen organisieren, ist dies etwas einfacher.

Wie gehen Sie in Ihren Projekten mit Niederlassungen um? Benutzt du sie zum Experimentieren und verwirfst sie danach? Oder stellen sie eine detaillierte Geschichte Ihrer Arbeit an dem Projekt dar?

Lassen Sie uns unten in den Kommentaren wissen, ob Sie auf geschickte Weise mit Zweigen in Ihren Git-Projekten umgehen können!