Strom sparender Computereinsatz hilft nicht zuletzt auch Kosten zu senken. ADMIN 02/2011 geht der Frage nach, was Administratoren tun können, damit ihre ... (mehr)

Git außer Haus

Bisher haben wir behandelt, wie Sie Git für eigene, lokale Projekte verwenden. Wenn Sie jedoch bei einem externen Projekt mitarbeiten, das ebenfalls Git verwendet, müssen Sie zuerst den Bestand des externen Repositorys importieren. Da Git ein verteiltes Versionskontrollsystem ist, können Sie im Prinzip jedermanns Repository benutzen, solange Ihnen der Zugang erlaubt ist.

Dennoch setzen die meisten Projekte wegen der Benutzerfreundlichkeit und der schnelleren Veröffentlichung der Ausgaben meistens ein zentrales Repository ein, das als Master-Version des Projekts funktioniert und aus dem Sie zu Beginn Ihrer Arbeit die Dateien herunterladen müssen. Das Importieren eines bestehenden Projekts ist ebenso einfach wie das Anlegen eines eigenen Repositorys. Möchten Sie den Kernel-Zweig von Linus Torvalds herunterladen, geben Sie folgenden Befehl ein: (Achtung: Dieser Baum ist recht groß und es wird eine Weile dauern!)

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6

Andere Linux-Projekte, die Git verwenden sind unter anderem Gimp, Debian, One Laptop Per Child und Perl (für eine längere Liste siehe die Seite Git auf Wikipedia); auf der Webseite des jeweiligen Projekts finden Sie immer den Link zu seinem zentralen Repository.

Sobald Sie eine Kopie des Projekt-Repositorys auf Ihrem eigenen Rechner haben, können Sie mit der Arbeit am Code beginnen. Es empfiehlt sich, einen Zweig (Branch) für Ihre eigenen Änderungen anzulegen. Das Aktualisieren aus dem zentralen Repository übernimmt »git pull« . Später möchten Sie vielleicht einen Patch aus den eigenen Änderungen generieren, um ihn dem Projekt zur Überprüfung und Einbeziehung zu senden. Das Arbeiten mit Zweigen (Branching), die Aktualisierung Ihrer Arbeitskopie (Updating), und wie man einen Patch erstellt, beschreibt der Artikel weiter unten.

Versionsgeschichte

Ähnlich wie alle anderen Versionsverwaltungssysteme, führt Git ein vollständiges Protokoll über die Änderungen jeder einzelnen Übertragung (commit). Das bedeutet, dass Sie verschiedene Versionen miteinander vergleichen, die früheren Schritte im Nachhinein überprüfen und sogar zu einer früheren Version des Projekts zurückkehren können.

Der Befehl »git show« zeigt Details zum letzten Commit. Sie sehen hier die Revision-ID, den Autornamen und seine E-Mail-Adresse, das Datum der Übertragung in das Repository, die Anmerkungen des Autors zu den Änderungen und ein Diff der Änderungen. Listing 2 zeigt ein Beispiel.

Listing 2

Commit und Diff

 

Der Befehl »git log« zeigt kurze Informationen zu jedem Commit in der Versionsgeschichte. Welche Informationen genau dabei aufgelistet werden, erklärt die Manpage. Sehr nützlich ist »git log Dateiname « , der nur die Änderungen der Datei Dateiname anzeigt. Eine hübsche Einzeilen-Ausgabe erhalten Sie per »git log pretty=oneline« (andere Optionen sind »short« , »medium« , »full« , »fuller« , »email« , und »raw« ).

Die Commits haben lange alphanumerische IDs (wie 351e8cf452b92ed591f19fdbd63023a68475a364 in Listing 2 ). Sie sind das Ergebnis eines interessanten Sicherheitsfeatures von Git: Der Name jeder Übertragung ist ein Hash-Wert, errechnet aus dem Inhalt der Übertragung. Dies bedeutet, dass die Authentizität der Versionsgeschichte in zweierlei Hinsicht gewährleistet ist.

Erstens kann ein Angreifer den Inhalt eines Commits nicht modifizieren, ohne dabei auch den Namen zu ändern. Zweitens ist der Name unverwechselbar (global unique). Wenn Sie also mit anderen zusammenarbeiten, ist es immer eindeutig und in jedem Repository nachvollziehbar, worauf sich Ihre Änderungen beziehen. Die Handhabung von Revisionsnummern wird dadurch zwar etwas umständlicher, aber Git macht eine Autovervollständigung, nachdem Sie die ersten paar Buchstaben eintippen, oder Sie verwenden einfach Copy & Paste.

Der Befehl »git diff« zeigt Ihnen die Unterschiede zwischen der zuletzt übertragenen und Ihrer aktuellen Version. Die Unterschiede zwischen zwei früheren Commits ermitteln Sie mit »git diff commitID1 commitID2 « . Einen Commit zu widerrufen, gelingt mit »git revert commitID« . Ihren kompletten Baum bringen Sie mit »git checkout« auf den letzten Versionsstand zurück (Achtung: Dadurch werden alle Änderungen überschrieben!).

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023