Dies ist auf jedenfall ein Blogeintrag wert! Auch wenn Git Mitte 2005 von Linus Torvalds entwickelt wurde und eigentlich schon durch den Mainstream gezogen ist, möchte ich es hier noch einmal aufgreifen.
Was Versionskontrolle ist, werden die Programmier sicherlich wissen. Für die, die es nicht sind bzw. es nicht wissen, können hier mehr zur Versionskontrolle nachlesen.
RVS, CVS und SVN sind nicht mehr auf dem Zahn der Zeit. Die neuen verteilten Versionskontrollsysteme ziehen mit den Vorteilen auf… das sie schnell sind, Neuerungen bzw. Patches müssen/können/sollten vorher durch einen Maintainer kontrolliert werden, das System arbeitet dezentral um Performance & Bandbreite zu sparen und andererseits bei einem Ausfall die ganze Entwicklung am Leben zu erhalten und zu guter letzt man mit dem Notebook auch Offline commiten/branchen/taggen kann.
Dies lässt sich ganz einfach dadurch erklären, dass jeder Benutzer sein eigenes Repository auf der Festplatte. Natürlich gibt es sogenannte ‘zentrale’ Repositories wie zum Beispiel GitHub. GitHub ist ein “Social Code Hosting” (Nachfolger von SourceForge), was quasi ein Sozial Network für Coder ist. Hier kann jeder Quellcode hochladen, den von anderen einsehen (sofern Rechte gesetzt), forken, … und wieder Änderungen von anderen in den eigenen Code zu integrieren. Man kann natürlich auch Problemlos seinen Code umziehen bzw. woanders veröffentlichen.
Bei GitHub sind momentan recht viele Projekte gehostet wie zum Beispiel der Linux Kernel, Perl, Gnome, Qt, Ruby on Rails, Android, Wine, Fedora, Debian, X.org, VLC, Git und viele mehr.
Happy git’n
Installation
Mac OS X, Linux (falls nicht schon installiert
), Windows
Repository Einrichten
Liste der Einstellungen
git config –list
Namen und Benutzer einrichten
git config –global user.name “Mein Name”
git config –global user.email email@addy.net
git config –global color.ui “auto”
git config –global pack.threads “0″
Projekt im Repository erstellen
cd /Path/To/Git/Project
Git Projekt initialisieren (in dem Verzeichnis)
git init
Überprüfen ob es geklappt hat
ls -a
> .git
Commit
git add .
git commit -m “erster commit”
Hinzufügen
git add NeueDateien…
Entfernen
git rm AlteDateien…
Umbenennen
git mv AlteDateil NeueDatei
Log
git log
Reset Liste
git reset –hard SHA1_HASH
Repository clonen
git clone git://server/path/to/files
Änderungen vom zentralen Repository ziehen
git pull
Änderungen auf das zentrale Repo schieben
git push
Änderungen des letzten commit’s
git diff
SVN checkout
git svn clone https://fishbox.svn.sourceforge.net/svnroot/fishbox fishbox
git svn fetch –all https://fishbox.svn.sourceforge.net/svnroot/fishbox fishbox
Links
http://de.wikipedia.org/wiki/Git / http://git-scm.com/
Kurs für SVN’er
http://de.wikipedia.org/wiki/Mercurial / http://mercurial.selenic.com
Podcast CRE130 [Empfehlung]
Cheat sheet’s
SVG: http://ktown.kde.org/~zrusin/git/git-cheat-sheet.svg
PNG’s:
http://ktown.kde.org/~zrusin/git/git-cheat-sheet-medium.png
http://ktown.kde.org/~zrusin/git/git-cheat-sheet-large.png
cheat.errtheblog.com
http://jan-krueger.net/development/git-cheat-sheet-extended-edition
http://www.ivy.fr/mercurial/ref/v1.0/
Dann noch… Happy Coding!