Site Map
js navbar
js navbar
= Git für Philosophen == Kurzer geschichtlicher Abriß
über Versionsverwaltung allgemein. Die (unvollständige) Entwicklung ohne kommerzielle Lösungen:
* SCCS (Source Code Control System, 1972) im Unix Umfeld (Bell Labs) * RCS (Revision Control System, 1982), diff-Sammlung parallel zu jeder Datei, * CVS (Concurrent Versions System, 1989), Netzwerk-Erweiterung von RCS (diff Sammlungen auf einem zentralen Server), * SVN (Subversion, 2000) - „CVS ohne dessen Fehler“, * Git 2005 - Neuentwicklung zur Verwaltung der Linux-Kernel Quellen, kein zentraler Server nötig * Mercurial 2005 - „git“ für CVS/SVN Umsteiger, auch kein zentraler Server nötig
== Konzepte * Lock-Modify-Write pfui, * Copy-Modify-Merge
== Topologien
* lokal, im Dateisystem eingestreut (SCCS, RCS), * zentrales Repository (CVS, SVN), * verteilte, gleichberechtigte Repositories (git, mercurial) == Terminologie http://de.wikipedia.org/wiki/Verteiltes_Versionskontrollsystem
* Repository (Repo): Archiv mit kompletter Änderungsgeschichte (was, wann, wer, wieso) * checkout: erstmalig Dateien aus dem Repository holen bzw. wiederholt auffrischen, * update: Dateien mit aktuellen Stand aus dem Repository auffrischen, * commit: Änderung(en) in's Repository schreiben, * changeset: Zusammengehörige Änderungen an mehreren Dateien in einem Commit * branch: „Zweig“ - von der Hauptentwicklung abzweigende aufeinanderfolgende Änderungen * trunk: Hauptzweig (git nennt das: 'master')
== Git Benutzung * Installation * commit GUI * Bash Completion
git… * …init - lokal neues Repo anlegen * …add status diff commit reset (dafür ist GitX sehr gut) * …checkout branch merge (Branch anlegen, wechseln, löschen) * …clone - Repo kopieren, * …fetch pull push - Sync mit anderen Repos
== Hosting * extrem flexibel * Open Source gerne bei http://github.com - ich auch: http://github.com/mro == Links * http://git-scm.com/ - Homepage * http://gitref.org/ - sehr gute Doku * http://www.kernel.org/pub/software/scm/git/docs/ - Manpages * http://www.kernel.org/pub/software/scm/git/docs/user-manual.html - Original Manual * SCCS Paper im IEEE 1975 * RCS Paper im IEEE 1982