====== 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'' bzw ''git 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 =====
http://realguess.net/node/10
(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.
http://git-scm.com/book/en/Git-Branching-What-a-Branch-Is
===== 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.