% master: grundbegriffe.tex % Grundbegriffe v0.1 % 2017-01-09 (Rx) \section{Grundbegriffe} %---------------------- \begin{verbatim} Versionkontrollsystem (Version Control System, VCS) Eine Versionsverwaltung ist ein System, das zur Erfassung von Änderungen an Dokumenten oder Dateien verwendet wird. Zum Beispiel: Zentrale Systeme - zentraler Server RCS-Revision Control System, CVS-Concurrent Versions System, SVN-Subversion Verteilte Systeme - Kein zentraler Server Bazaar, Darcs, Fossil, Git, GNU arch, Mercurial, Monotone Repository Nutzt Git als Dantenbank in der die verschiedenen Zustände jeder Datei eines Projektes über die Zeit hinweg ablegt. Jede Änderrung wird als Commit verpackt und abgespeichert. Working Tree Das Arbeitsverzeichnis von Git, oft auch Working Directory genannt. Commit Das speichern der veränderten Dateien im Repository. HEAD Eine symbolische Referenz auf den neusten Commit im aktuellen Branch. SHA-1 Der Secure Hash Algorithm erstellt eine eindeutige, 160 Bit lange Prüfsumme. Alle Commits in Git werden nach ihrer SHA-1-Summe benannt, die aus dem Inhalt und den Metadaten des Commits errechnet wird. Objektmodell Ein Git-Repository lässt sich als Graph von Commits modellieren, der durch Git-Kommandos manipuliert wird. Index Der Index ist eine Zwischenstufe zwischen Working Tree und Repository, in der Sie einen Commit vorbereiten. Enthält also die Dateien für den nästen Commit. Clone Wenn Sie sich ein Git-Repository aus dem Internet herrunterladen. Enthält die gesamte Versionsgeschichte einschließlich aller Commits. Branch Eine Abzweigung in der Entwicklung. Zum Beispiel für neue Featurs, Release vorbereitung oder alte Versionen mit Bugfixes zu versorgen. master Beim Initialisieren eines neuen Repositorys wird der Branch master erstellt analog trunk in anderen Systemen. Tag Tags sind symbolische Namen für schwer zu merkende SHA-1-Summen. Wichtige Commits, wie zum Beispiel Releases v1.2.3. oder können zusätzliche Metadateien wie Autor, Beschreibung und GPG-Signatur enthalten. \end{verbatim}