Inhaltsverzeichnis
git Versionsverwaltung
kurz und knapp: http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/de/ch02.html
Grafisches Interface (zum schnellen browsen in alten commits…):
gitk
bzwgit gui
(von git selbst mitgeliefert, auf tcl/tk)qgit
(Qt Interface)tig
(ncurses?)
Zusammenfassung
Befehl | macht |
---|---|
git init (--bare fuer kein working directory) | |
git add [Dateien] | Dateien hinzufuegen |
git commit -am "Kommentar" | aktuelle Version der Datei ins git |
git push --all [gitrepo] | git Infos nach [gitrepo] kopieren |
git log --pretty=format: --name-only --diff-filter=A | sort - | Liste aller Dateien in der Versionsverwaltung anzeigen |
Grobe Vorgehensweise
git init git add datei git commit vim datei git status git status -s git commit -a git commit -am "commit message" git log
von woanders holen und interagieren:
git clone ssh://server/home/user/gitrepository [...] git push [...woanders aenderungen...] git pull
pushen möglichst nur auf einen dedizierten server auf dem nicht am repository gearbeitet wird und deshalb nur ein bare repository mit git init –bare
eingerichtet wurde! (beim ersten pushen auf den server: git push origin master:master
um den branch festzulegen)
Prinzipiell immer commit, pull, evtl. merge, push
GIT SSH mit einer unix gruppe teilen
(im repository verzeichnis)
git init --bare --shared=group chown -R user:group .
GIT BARE REPO umziehen
git clone --bare --shared ssh://physiker/home/tomitude/api api chown -R tomitude:tomitude .
GIT Branching
neuen branch erstellen mit
git branch NAME
branch wechseln mit
git checkout NAME
Aenderungen, in branch committen etc.
Branch in master branch mergen:
git checkout master git merge NAME
Damit ist master aktuell. Der Branch NAME enthaelt evtl. zwischenzeitlich vorgenommene Aenderungen im Branch master aber natuerlich nicht.
Caro Vorgehensweise mit development-branch: branch entweder loeschen und neu erstellen, oder master in development mergen.
GIT Tags
Mit tags kann man einzelne commits herausheben, z.B. um eine spezielle Version zu markieren.
Neuen tag erstellen mit
git tag -a SHORTNAME_ZB_v01 -m 'Beschreibung'
tags+Beschreibungen auflisten mit
git tag -n
zu tag SHORTNAME gehen
git checkout tags/SHORTNAME
Tags werden mit git push nicht mitgenommen. Ein tag auf den remote server/origin zu schieben:
git push origin SHORTNAME
Beim pullen sollte der tag mitkommen.