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.