Erste Schritte mit Git
16. August 2012 / Bash / git
×Info: This post is older than 2 years! Displayed information may be outdated!
Git ist ein richtig gutes Versionierungstool. Es ist schnell, relativ einfach zu handhaben und es läuft sehr geschmeidig. Ich habe schon einige SVN-fails erlebt und CVS ist … ach reden wir nicht drüber. Jedenfalls: Git rockt.
Überblick
Auf dieser Seite somd die wichtigsten Befehle und Prinzipien schön aufbereitet: git-Guide auf github.com
Das offizielle Git-Buch ist hier online und für lau.
Nice, Dude
Sehr schön ist vor allem, dass nicht in jedem Unterordner .svn-Kram rumliegt, den man beim Deployment erst wieder rekursiv löschen muss. Im Zusammen mit bitbucket.org oder einer gewöhnlichen Dropbox hat das auch viel schönes.
Git installieren und ein Repo anlegen
# linux
sudo apt-get install git
# ein Repo anlegen
git init
# ein Repo clonen
git clone benutzername@host:/pfad/zum/repository
Häufig benötigte Befehle
# Status abfragen
git status
# ein Repo aktualisiern
git pull
# neue Dateien adden
git add path/to/file
# Änderungen einer Datei committen
git commit file -m"Commitmessage"
# alle Änderungen committen
git commit -am"Commitmessage"
# Committete Zustände auf remote Repo übertragen
git push
# alle lokalen Änderungen verwerfen
git checkout -- *
# reset
git fetch origin
git reset --hard origin/master
Diff
Neben gitg
/ gitk
ist meld
sehr nice.
# meld-diff in einem git-Verzeichnis öffnen
meld .
# oder mit git-diff
git diff /pfad/zum/file
Meld kann zudem auch ganze Ordner diffen.
Git remotes löschen und hinzufügen
Wenn sich z.B. lokal der Ordner des Repos/Projekts geändert hat oder das Repo umbenannt wurde:
# remotes auflisten
git remote -v
# Remote Branch-Info anzeigen
git remote show origin
# remote löschen (z.b. origin)
git remote rm origin
# remote adden
git remote add origin <url.git>
# danach nicht vergessen
git push -u origin master
Config
Username / E-Mail, etc. kann man auch global konfigurieren.
# config
git config --global user.name "Name Firstname"
git config --global user.email "mail@example.com"
git config --global color.ui true # you really want that ;)
SVN und CVS auf Git migrieren
Dafür gibt es Tools, die auch die gesamte History migrieren: git-svn und git-cvs. Git-svn hab ich schon mehrfach erfolgreich genutzt.