Was ist Git? Warum sollten Sie die 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 nur Sie und die Änderungen klein sind. Wenn Sie jedoch mit mehr als einer Person zu tun haben, die an etwas arbeitet, oder an einem großen Projekt mit vielen komplizierten Komponenten, ist dies einfach nicht machbar. Dann wenden wir uns der Versionskontrolle zu.
Heute spreche ich über eine Open Source-Versionskontrollsoftware namens Git. Auf diese Weise können mehrere Personen sicher an demselben Projekt arbeiten, ohne sich gegenseitig zu stören. Dies ist jedoch noch viel mehr.
Gründe für die Verwendung der Versionskontrollsoftware?
In erster Linie sollte der Name es verraten. Versionskontrollsoftware ermöglicht es Ihnen “Versionen” eines Projekts, in dem die Änderungen angezeigt werden, die im Laufe der Zeit am Code vorgenommen wurden, und ermöglichen es Ihnen, falls nötig zurückzublättern und diese Änderungen rückgängig zu machen. Allein diese Fähigkeit, zwei Versionen vergleichen oder Änderungen rückgängig machen zu können, macht sie bei größeren Projekten von unschätzbarem Wert.
Sie haben dies wahrscheinlich sogar selbst gemacht und Kopien eines Projekts an verschiedenen Stellen gespeichert, um eine Sicherung zu erhalten. In einem Versionskontrollsystem werden nur die Änderungen gespeichert - eine Patch-Datei, die auf eine Version angewendet werden kann, um sie der nächsten Version anzupassen. Bei einem Entwickler reicht das aus.
Was aber, wenn mehrere Entwickler an einem Projekt arbeiten? Dann kommt die Idee eines zentralen Versionskontrollservers ins Spiel. Diese sind seit langem Standard, wobei alle Versionen auf einem zentralen Server gespeichert werden, und einzelne Entwickler prüfen und laden Änderungen auf diesen Server zurück. Wenn Sie sich schon einmal den Bearbeitungsverlauf einer Wikipedia-Seite angesehen haben, haben Sie eine gute Vorstellung davon, wie dies in einem realen Szenario funktioniert:
Die Vorteile eines solchen Systems sind, dass mehrere Entwickler Änderungen vornehmen können und jede Änderung einem bestimmten Entwickler zugeordnet werden kann. Ein Nachteil ist, dass alle Daten in einer entfernten Datenbank gespeichert werden. Dies bedeutet, dass keine Änderungen vorgenommen werden können, wenn der Server ausfällt. und wenn die zentrale Datenbank verloren geht, verfügt jeder Client nur über die aktuelle Version dessen, woran er gerade gearbeitet hat.
Das bringt uns zu Git und anderen sogenannten verteilte Versionskontrollsysteme. In diesen Systemen checken Clients nicht nur die aktuelle Version der Dateien und arbeiten mit ihnen - sie spiegeln den gesamten Versionsverlauf wider. Jeder Entwickler hat immer eine vollständige Kopie von allem. Ein zentraler Server wird zwar noch verwendet, sollte jedoch der schlimmste Fall eintreten, kann alles von jedem Client mit den neuesten Versionen wiederhergestellt werden.
Git arbeitet speziell durch das Nehmen “Momentaufnahmen” von Dateien; Wenn Dateien in einer bestimmten Version unverändert bleiben, werden sie einfach mit den vorherigen Dateien verknüpft - dadurch bleibt alles schnell und schlank.
Es könnte Sie auch interessieren, dass Git zum Verwalten und Entwickeln des Kern-Linux-Kernels verwendet wird - dem Basis-Baustein, auf dem alle Linux-Distributionen basieren.
Was ist Github??
Obwohl Sie Ihren eigenen Git-Server lokal ausführen können, ist Github sowohl ein Remote-Server als auch eine Entwicklergemeinschaft und eine grafische Weboberfläche für die Verwaltung Ihres Git-Projekts. Die Nutzung für bis zu 5 öffentliche Repositorys ist kostenlos, das heißt, wenn jeder Ihren Code anzeigen oder verzweigen kann, und das zu günstigen Kosten für private Projekte. Ich empfehle Ihnen dringend, sich für ein kostenloses Konto anzumelden, um mit Ihren eigenen Projekten herumzuspielen oder jemanden zu fälschen.
Gabelung & Verzweigung
Dies sind die wichtigsten Konzepte der Git-Erfahrung. Nehmen wir uns einen Moment Zeit, um den Unterschied zu erklären.
Sie haben wahrscheinlich die Arbeit gehört “Gabel” im Umgang mit Linux-Distributionen. Wenn Sie mit der Media Center-App Plex vertraut sind, wissen Sie, dass sie ursprünglich eine Abzweigung des ähnlichen Open Source Xbox Media Center Aeon Nox 3.5 war: Schönes und anpassbares Design für XBMC Aeon Nox 3.5: Schönes und anpassbares Design für XBMC-Set Richten Sie Ihr Media Center genau so ein, wie Sie es möchten. Aeon Nox 3.5 ist die neueste Version des vielleicht besten Themas für XBMC, und es ist eine seltene Kombination: schöne… Weiterlesen. Dies bedeutet einfach, dass einige Entwickler zu irgendeinem Zeitpunkt in der Vergangenheit den Code von XBMC übernommen und beschlossen haben, ihren eigenen Weg zu gehen. das wurde Plex.
Dies ist natürlich völlig zulässig, wenn das Projekt Open Source ist - Sie können den Code mitnehmen und machen, was Sie möchten. Wenn Sie der Meinung sind, dass Ihre Änderungen mit Git gut genug sind, um wieder in die “Meister” Projekt können Sie ein machen “Pull-Anfrage” Sie bitten den Autor, Ihre Änderungen wieder in ihr ursprüngliches Projekt zu übernehmen. Auf diese Weise können Sie zu jedem Zeitpunkt Hunderttausende von Entwicklern an einem Projekt arbeiten lassen, von denen keiner zwingend für den Zugriff auf den Code zugelassen sein muss. Sie kopieren lediglich den Code, nehmen Änderungen vor und fordern ein Rollback in den Master an. Natürlich liegt es an dem Eigentümer des ursprünglichen Projekts, ob er Ihre Änderungen akzeptiert oder nicht.
Verzweigungen werden intern von autorisierten Entwicklern in einem Projekt ausgeführt. Sie können bestimmte Probleme oder Funktionen problemlos trennen und daran arbeiten, ohne die Masterdateien zu beschädigen. Sobald Sie überzeugt sind, dass sich Ihre Zweigstelle mit dem Problem befasst hat, führen Sie es wieder in den Master ein. Zu jedem Zeitpunkt können beliebig viele Zweige vorhanden sein. Sie stören sich nicht. Sie können Änderungen auch zwischen Zweigen zusammenführen, ohne den Master zu berühren.
Hier ist ein tolles Diagramm eines Beispielworkflows von Vincent Driessen:
Beim nächsten Mal werden wir untersuchen, wie Sie ein funktionierendes Git-Beispiel einrichten und Codeänderungen innerhalb von Verzweigungen vornehmen. Die Versionskontrolle ist ein großes Thema. Ich habe hier nur einen kurzen Überblick gegeben, aber als Entwickler, der daran gewöhnt ist, nur Änderungen vorzunehmen und sie rückgängig zu machen, wenn sie nicht funktionieren, hat mich das ganze Konzept durchbrochen - ich hoffe, es tut auch Ihnen.
Sind Sie ein erfahrener Entwickler mit Erfahrung in Git? Fangen Sie gerade erst an und denken, Sie möchten einen Versuch unternehmen? Sound off in den Kommentaren!
Erfahren Sie mehr über: Programmierung, Projektmanagement, Webentwicklung.