Werbung
Als Webentwickler arbeiten wir häufig an lokalen Entwicklungswebsites und laden dann einfach alles hoch, wenn wir fertig sind. Dies ist in Ordnung, wenn es nur Sie sind und die Änderungen gering sind, wenn Sie jedoch mit mehr als einer zu tun haben Person, die an etwas arbeitet oder an einem großen Projekt mit vielen komplizierten Komponenten, das ist einfach nicht möglich. Dann wenden wir uns der sogenannten Versionskontrolle zu.
Heute spreche ich über eine Open-Source-Versionskontrollsoftware namens Git. Auf diese Weise können mehr als eine Person sicher an demselben Projekt arbeiten, ohne sich gegenseitig zu stören, aber es ist noch viel mehr.
Warum Versionskontrollsoftware verwenden?
In erster Linie sollte der Name es verraten. Mit der Versionskontrollsoftware können Sie über „Versionen“ eines Projekts verfügen, in denen die Änderungen angezeigt werden, die im Laufe der Zeit am Code vorgenommen wurden, und bei Bedarf einen Rückverfolg durchführen und diese Änderungen rückgängig machen. Allein diese Fähigkeit, zwei Versionen vergleichen oder Änderungen rückgängig machen zu können, macht es bei der Arbeit an größeren Projekten von unschätzbarem Wert.
Sie haben dies wahrscheinlich sogar irgendwann selbst getan und Kopien eines Projekts an verschiedenen Stellen gespeichert, damit Sie ein Backup haben. In einem Versionskontrollsystem würden nur die Änderungen gespeichert - eine Patch-Datei, die auf eine Version angewendet werden könnte, um sie mit der nächsten Version identisch zu machen. Bei einem Entwickler ist dies ausreichend.
Aber was ist, wenn mehr als ein Entwickler an einem Projekt arbeitet? Dann kommt die Idee eines zentralen Versionskontrollservers auf. Dies ist seit langem der Standard, bei dem alle Versionen auf einem zentralen Server gespeichert werden und einzelne Entwickler Änderungen auschecken und auf diesen Server zurückladen. Wenn Sie sich jemals den Bearbeitungsverlauf einer Wikipedia-Seite angesehen haben, haben Sie eine gute Vorstellung davon, wie dies in einem realen Szenario funktioniert:
Der Vorteil eines solchen Systems besteht darin, dass mehrere Entwickler Änderungen vornehmen können und jede Änderung dann einem bestimmten Entwickler zugeordnet werden kann. Andererseits bedeutet die Tatsache, dass alles in einer entfernten Datenbank gespeichert ist, dass keine Änderungen vorgenommen werden können, wenn dieser Server ausfällt. und wenn die zentrale Datenbank verloren geht, hat jeder Client nur die aktuelle Version von allem, woran er gearbeitet hat.
Das bringt uns zu Git und anderen sogenannten verteilte Versionskontrollsysteme. In diesen Systemen checken Clients nicht nur die aktuelle Version der Dateien aus und arbeiten damit, sondern spiegeln den gesamten Versionsverlauf wider. Jeder Entwickler hat immer eine vollständige Kopie von allem. Ein zentraler Server wird weiterhin verwendet. Sollte jedoch das Schlimmste eintreten, kann alles von jedem Client mit den neuesten Versionen wiederhergestellt werden.
Git arbeitet speziell mit „Schnappschüssen“ von Dateien. Wenn Dateien in einer bestimmten Version unverändert bleiben, werden sie einfach mit den vorherigen Dateien verknüpft - dies hält alles schnell und schlank.
Es könnte Sie auch interessieren zu erfahren, dass Git zum Verwalten und Entwickeln des Git verwendet wird Core Linux Kernel - der Basisbaustein, auf dem alle Linux-Distributionen basieren.
Was ist Github?
Obwohl Sie Ihren eigenen Git-Server lokal ausführen können, Github ist sowohl ein Remote-Server, eine Entwicklergemeinschaft als auch eine grafische Weboberfläche für die Verwaltung Ihres Git-Projekts. Es kann kostenlos für bis zu 5 öffentliche Repositorys verwendet werden - dh wenn jeder Ihren Code anzeigen oder teilen kann - mit kostengünstigen Plänen für private Projekte. Ich empfehle Ihnen dringend, sich für ein kostenloses Konto anzumelden, damit Sie anfangen können, mit Ihren eigenen Projekten herumzuspielen oder andere zu forken.
Gabeln & Verzweigen
Dies sind Kernkonzepte für die Git-Erfahrung. Nehmen wir uns also einen Moment Zeit, um den Unterschied zu erklären.
Sie haben wahrscheinlich die Arbeit "Fork" gehört, wenn Sie sich mit Linux-Distributionen befassen. Wenn Sie mit der Media Center-App Plex vertraut sind, wissen Sie, dass es sich ursprünglich um eine Abzweigung des ähnlichen Open Source handelte Xbox Media Center Aeon Nox 3.5: Schönes und anpassbares Thema für XBMCRichten 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 eine seltene Kombination: wunderschön ... Weiterlesen . Dies bedeutet einfach, dass einige Entwickler irgendwann 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 erlaubt, wenn das Projekt Open Source ist - Sie können den Code nehmen und damit machen, was Sie wollen. Wenn Sie mit Git der Meinung sind, dass Ihre Änderungen gut genug sind, um wieder in das „Master“ -Projekt übernommen zu werden, sind Sie es Sie können dem Autor eine "Pull-Anfrage" stellen und ihn bitten, Ihre Änderungen wieder in das Original zu übernehmen Projekt. Auf diese Weise können Sie zu jedem Zeitpunkt Hunderttausende von Entwicklern an einem Projekt arbeiten lassen, von denen keiner muss muss für den Codezugriff genehmigt werden - sie kopieren einfach den Code, nehmen Änderungen vor und fordern ein Rollback in den Code an Meister. Natürlich ist es Sache des Eigentümers des ursprünglichen Projekts, ob er Ihre Änderungen akzeptiert oder nicht.
Das Verzweigen erfolgt intern in einem Projekt durch die autorisierten Entwickler. Sie können damit bestimmte Probleme oder Funktionen einfach trennen und bearbeiten, ohne die Masterdateien zu beschädigen. Sobald Sie zufrieden sind, dass sich Ihre Niederlassung mit dem Problem befasst hat, führen Sie es wieder in den Master ein. Zu jedem Zeitpunkt kann es so viele Zweige geben, wie Sie möchten. Sie stören sich nicht. Sie können Änderungen auch zwischen Zweigen zusammenführen, ohne den Master zu berühren.
Hier ist ein großartiges Diagramm eines Beispiel-Workflows von Vincent Driessen:
Beim nächsten Mal werden wir uns ansehen, wie Sie ein funktionierendes Git-Beispiel einrichten und Codeänderungen in Zweigen vornehmen. Die Versionskontrolle ist ein großes Thema. Ich habe hier nur den kürzesten Überblick gegeben, aber als Entwickler, der es gewohnt ist, Änderungen vorzunehmen und sie rückgängig zu machen, wenn sie nicht funktionieren, hat mich das gesamte Konzept umgehauen - ich hoffe, es funktioniert auch bei Ihnen.
Sind Sie ein erfahrener Entwickler mit Erfahrung in Git? Fangen Sie gerade erst an und denken, Sie möchten es versuchen? Ton aus in den Kommentaren!
James hat einen BSc in künstlicher Intelligenz und ist CompTIA A + und Network + zertifiziert. Er ist der Hauptentwickler von MakeUseOf und verbringt seine Freizeit mit VR-Paintball und Brettspielen. Er baut seit seiner Kindheit PCs.