Git

Git Information
Entwickelt von Erhaltung der Softwarefreiheit ( in )
Erste Version 7. April 2005
Letzte Version 2.32.0 (6. Juni 2021)
Anzahlung git.kernel.org/pub/scm/git/git.git
Qualitätskontrolle Kontinuierliche Integration und kontinuierliche Integration
Geschrieben in C , Shell Unix , Perl , Tcl , Python und C ++
Betriebssystem Multiplattform
Formate lesen Git packfile ( d ) , git packfile index, Version 1 ( d ) und git packfile index, Version 2 ( d )
schriftliche Formate Git packfile ( d ) , git packfile index, Version 1 ( d ) und git packfile index, Version 2 ( d )
Sprachen Englisch
Typ Dezentrale Quellcodeverwaltung ( in )
Lizenz GNU General Public License Version 2
Webseite git-scm.com

Git ist eine dezentrale Versionsverwaltungssoftware . Es handelt sich um freie Software, die von Linus Torvalds , dem Autor des Linux-Kernels , erstellt und unter den Bedingungen der GNU General Public License Version 2 vertrieben wird. Der aktuelle Hauptbeitrag zu git und seit über 16 Jahren ist Junio ​​C Hamano. Ab 2016 ist es die beliebteste Versionskontrollsoftware , die von mehr als zwölf Millionen Menschen verwendet wird.

Technische Besonderheiten

Ähnlich wie BitKeeper verlässt sich Git nicht auf einen zentralen Server , sondern verwendet ein Peer-to-Peer- Verbindungssystem . Der entwickelte Computercode wird nicht nur auf dem Computer jedes Mitwirkenden des Projekts gespeichert, sondern kann auch auf einem dedizierten Server gespeichert werden. Es ist ein Low-Level- Tool , das einfach und effizient sein soll und dessen Hauptaufgabe darin besteht, die Entwicklung des Inhalts einer Baumstruktur zu verwalten .

Git indiziert Dateien basierend auf ihrer Prüfsumme, die mit der SHA-1- Hash- Funktion berechnet wurde . Wenn eine Datei nicht geändert wird, ändert sich die Prüfsumme nicht und die Datei wird nur einmal gespeichert. Wenn die Datei jedoch geändert wird, werden beide Versionen auf der Festplatte gespeichert.

Im Gegensatz zu den bisher gebräuchlichen Versionskontroll- Softwarearchitekturen stützt sich Git vollständig auf wenige grundlegende Datenstrukturen. Linus Torvalds erklärte: „Git kann man sich in vielerlei Hinsicht nur als Dateisystem vorstellen . Es ist inhaltsbezogen und hat die Idee der Versionierung, aber ich habe es wirklich aus der Perspektive eines Dateisystemspezialisten entworfen (schließlich bin ich es gewohnt, mit Kerneln zu arbeiten) und ich hatte absolut keine Lust, ein traditionelles Versionskontrollsystem zu erstellen. Frühe Versionen von Git boten eine rudimentäre Schnittstelle zur Manipulation dieser internen Objekte, bevor dann nach und nach allgemeine Versionierungsfunktionen hinzugefügt und verfeinert wurden.

Git gilt als gut, so dass einige andere Versionskontrollsoftware ( Darcs , Arch ), die keine Datenbank verwendet , Interesse an Gits Dateispeichersystem für ihren eigenen Betrieb gezeigt haben. Sie bieten jedoch weiterhin erweiterte Funktionen.

Git wurde von Anfang an mit dem Ziel entwickelt, dezentral zu arbeiten, was auch einer der Schlüssel zum Erfolg ist . Die Dezentralisierung von Git hat auch der Entwicklung freier Software viel gebracht, da die Notwendigkeit, einen Account auf einem zentralen SVN- oder CVS-Repository anzufordern, obsolet wird. Sie müssen nur berappen ein Projekt oder es klont auf sich zu Beginn der Arbeit (mit dem ganzen Geschichte des Projektes vor Ort) und dann seinen Beitrag (vorzuschlagen Pull - Anforderung ) an den Haupt - Repository (Haupt Betreuer des Projektes).

Git-Server verwenden standardmäßig Port 9418 für das Git-spezifische Protokoll . Auch die Protokolle HTTP , HTTPS und SSH (und deren Standardports ) können verwendet werden.

Funktion

Git hat zwei Datenstrukturen  : eine Objektbasis und einen Verzeichniscache . Es gibt vier Arten von Objekten:

Die Objektdatenbank kann jede Art von Objekt enthalten. Eine Zwischenschicht stellt über Indizes (Prüfsummen) eine Verbindung zwischen den Objekten der Datenbank und der Baumstruktur der Dateien her.

Jedes Objekt wird durch eine SHA-1-Prüfsumme seines Inhalts identifiziert . Git berechnet die Prüfsumme und verwendet diesen Wert, um den Dateinamen des Objekts zu bestimmen. Das Objekt wird in einem Verzeichnis abgelegt, dessen Name mit den ersten beiden Zeichen der Prüfsumme übereinstimmt. Der Rest der Prüfsumme ist dann der Dateiname für dieses Objekt.

Git speichert jede Revision als einzelnes Blob in einer Datei . Die Beziehungen zwischen den Blobs werden durch die Untersuchung der Commit- Objekte bestimmt . Normalerweise werden Blobs vollständig mit der zlib- Komprimierung gespeichert . Dieses Prinzip kann schnell viel Speicherplatz beanspruchen; Daher können Objekte zu Archiven zusammengefasst werden, die differenzielle Komprimierung verwenden (d. h. Blobs werden als Unterschiede zu anderen Blobs gespeichert ).

Einige Bestellungen

Git hat insbesondere die folgenden Befehle:

Schnittstellen

Standardmäßig wird mit Git ein Webinterface bereitgestellt:

Sowie zwei grafische Oberflächen:

Desktop-Schnittstellen von Drittanbietern

Es gibt auch andere Anwendungen, die eine Desktop-Oberfläche bieten:

Selbsthostende Webschmieden

Andere Projekte bieten Webschnittstellen für Git mit manchmal Verwaltung verschiedener Projekte, Tickets, Wiki ...:

Hosting-Sites

Es gibt verschiedene allgemeinen Hosting - Sites (auch genannt schmieden ) sowie Websites auf bestimmte Entwicklungen gewidmet, zu akzeptieren Benutzer Projekte, wie zum Beispiel der CGIT Instanz von Kernel.org ( Linux - Kernel ) oder Gitlab Instanzen. Von Freedesktop.org , Gnome , KDE oder sogar Blender .

Entwicklung

Git wurde speziell für den Linux- Kernel entwickelt und optimiert . Linus Torvalds begann im April 2005 mit dem Schreiben und ersetzte das proprietäre BitKeeper- Programm . Tatsächlich Larry McVoy widerrufen die Möglichkeit , kostenlos seine Software zu verwenden, nachdem Andrew Tridgell zu versucht ein Reverse-Engineering , die Protokolle von BitKeeper verwendet. Die Gründe für diesen Widerruf bleiben jedoch umstritten.

Die erste Version wurde veröffentlicht am 7. April 2005. Seitdem wurde die Entwicklung dieses Tools fortgesetzt. Es wurde nach und nach verbessert und sieht sich selbst mit grafischen Oberflächen, Weboberflächen oder erweiterten Skripten ausgestattet.

Der Kernel Summit von Juli 2005 war für Linus Torvalds Anlass, bekannt zu geben, dass die folgenden Versionen des Linux-Kernels (ab Version 2.6.12) mit Git entwickelt werden.

Ende Juli 2005, beschloss Linus Torvalds, die Wartung und Weiterentwicklung von Git Junio ​​Hamano anzuvertrauen und erklärte, dass er "immer gesagt habe, dass er es nicht wirklich auf lange Sicht beibehalten wolle".

Die Entwicklung ist sehr aktiv. Die erste stabile Version (1.0) wurde veröffentlicht am released21. Dezember 2005, oder weniger als ein Jahr nach Projektbeginn.

Ursprung des Namens

Linus Torvalds spricht [ˈɡɪt] mit einem harten ɡ aus .

Das Magazin PC World sagt uns, dass "auf die Frage, warum er seine Software ' git ' nannte, was im britischen Slang ungefähr das Äquivalent von 'Arschloch' ist, antwortete Linus Torvalds: 'Ich bin nur ein dreckiger Egoist, also nenne ich alle meine Projekte danach". meine eigene Person. Erst Linux, dann Git.“ ".

Hinweise und Referenzen

  1. Re: Trivia: Wann hat sich git selbst gehostet?  » (Zugriff am 5. November 2019 )
  2. [ANNOUNCE] Git v2.32.0  " (Zugriff am 6. Juni 2021 )
  3. (in) "  Git 2.8.2 Popular Source Code Management System Released with Over 18 Bug Fixes  " auf Softpedia ,2. Mai 2016(Zugriff am 2. Mai 2016 )
  4. (in) Linus Torvalds, "  'Re: more git updates ..  ' ,10. April 2005(Zugriff am 24. April 2017 ) In vielerlei Hinsicht kann man git einfach als Dateisystem sehen - es ist inhaltsadressierbar und hat eine Vorstellung von Versionierung, aber ich habe es wirklich wirklich entworfen, um das Problem aus der Sicht einer Dateisystem- Person zu lösen (hey, Kernel ist das, was ich tue), und ich habe eigentlich kein Interesse daran, ein traditionelles SCM-System zu erstellen.  "
  5. Git-Archive: Verwenden von Git-Verzeichnis-Cache-Code in Darcs? .
  6. [Gnu-arch-users] [ANKÜNDIGUNG] / Arch / umarmt `git' .
  7. (in) Jon Loeliger, Versionskontrolle mit Git , O'Reilly Media , Git Basic Concepts
  8. http://gdt.oqlf.gouv.qc.ca/ficheOqlf.aspx?Id_Fiche=8371027#eng .
  9. (in) "  Allura  "
  10. (en) James Sanders, "  Wenn Sie von Microsoft beim Kauf von GitHub ausflippen, hier sind Ihre besten Alternativen  " , auf TechRepublic ,4. Juni 2018
  11. AWS CodeCommit
  12. „  Gitea  “ , auf Gitea.io (Zugriff am 29. Juni 2020 ) .
  13. „  Kallithea  “ , auf Scm.org (Zugriff am 29. Juni 2020 ) .
  14. (in) "  Tech Talk: Linus Torvalds is git  " auf YouTube ,14. Mai 2007(Zugriff am 2. Dezember 2016 )
  15. http://www.wordreference.com/enfr/git .
  16. Oder, laut Merriam-Webster , inkonsistente oder wertlose Person. John Lennon verwendet das Wort in seinem Song I'm So Tired .
  17. (in) PC-Welt .

Anhänge

Verwandte Artikel

Externe Links