Git
aus Wikipedia, der freien Enzyklopädie
Git | |
---|---|
Entwickler: | Junio Hamano, u. v. a. |
Aktuelle Version: | 1.5.0.3 (5. März 2007) |
Betriebssystem: | unix-artige Systeme, Microsoft Windows |
Kategorie: | Programmierung |
Lizenz: | GPL |
Deutschsprachig: | nein |
Website: | Homepage |
Git ist ein Versionskontrollsystem, das unter den Bedingungen der GPL veröffentlicht wurde. Es wurde ursprünglich für die Verwaltung des Linux-Kernels entwickelt.
Die Entwicklung von Git wurde im April 2005 von Linus Torvalds begonnen, um das bis dahin verwendete Versionskontrollsystem BitKeeper zu ersetzen, welches durch eine Lizenzänderung vielen Entwicklern den Zugang verwehrte. Die erste Version erschien bereits wenige Tage nach der Ankündigung. Die derzeit aktuelle Version wird produktiv für die Entwicklung des Linux-Kernels und vieler weiterer Projekte eingesetzt. Derzeitiger Maintainer von Git ist Junio Hamano.
Git läuft auf fast allen modernen UNIX-artigen Systemen, wie Linux, Solaris, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX und IRIX. Mit Hilfe der Cygwin-Umgebung läuft es auch auf Microsoft Windows.
[Bearbeiten] Eigenschaften
Git ist ein modernes, verteiltes Versionskontrollsystem, das sich in einigen Eigenschaften von traditionellen Versionskontrollsystemen unterscheidet:
- Nicht-lineare Entwicklung: Sowohl das Erstellen neuer Entwicklungszweige (branching) sowie das Verschmelzen (merging) sind einfach und effizient. Git enthält Programme, mit deren Hilfe sich die nicht-lineare Geschichte eines Projektes einfach visualisieren lässt, und mit deren Hilfe man in dieser Geschichte navigieren kann.
- Kein zentraler Server: Jeder Benutzer besitzt eine lokale Kopie der gesamten Projektgeschichte (repository), so dass die meisten Aktionen lokal und ohne Netzwerkzugriff ausgeführt werden können. Es wird nicht zwischen lokalen Entwicklungszweigen und Entwicklungszweigen entfernter Repositories unterschieden.
- Flexibler Datentransfer zwischen Repositories: Daten können mit einer Reihe verschiedener Protokolle zwischen Repositories übertragen werden. Git besitzt ein sehr effizientes eigenes Protokoll, das auf TCP-Port 9418 arbeitet. Ebenso kann der Transfer über SSH oder (weniger effizient) über HTTP, HTTPS oder FTP erfolgen.
- Effizienz bei großen Projekten: Git ist schnell und skaliert gut im Umgang mit großen Projekten und langen Projektgeschichten. Es ist bei den meisten Aktionen und Zugriffen eine Größenordnung schneller als traditionelle Versionskontrollsysteme.
- Kryptographische Sicherheit der Projektgeschichte: Die Geschichte eines Projektes wird so gespeichert, dass der Name einer beliebigen Version (commit) auf der vollständigen Geschichte basiert, die zu dieser Version geführt hat. Dadurch ist es nicht möglich, die Versionsgeschichte nachträglich zu verändern bzw. zu manipulieren ohne dass sich der Name des Commits ändert. Versionen können zusätzlich mit GPG digital signiert werden.
- Verzeichnisbasiertes Verständnis: Im Gegensatz zu traditionellen Versionskontrollsystemen wie SCCS, RCS und CVS arbeitet Git nicht auf einzelnen Dateien, sondern auf Verzeichnissen bzw. Hierarchien von Verzeichnissen.
- Lässiges Säubern des Repositories: Die Daten gelöschter und zurückgenommener Aktionen und Entwicklungszweige bleiben vorhanden (und können wiederhergestellt werden), bis sie explizit gelöscht werden.