Git

Checkout

Master auschecken

 $ git clone git@openslx.org:openslx/core.git [openslx]

(ssh-key sollte bereits geladen sein => ssh-add)

Anonym:

 $ git clone git://git.openslx.org/openslx/core.git openslx 

Setup

Benutzer "einrichten"

$ git config --global user.name "John Doe" 
$ git config --global user.email johndoe@example.com

(wenn die Einstellungen nur für ein Repository gelten soll, dann einfach das "--global" weglassen)

Standard Verhalten für das pushen festlegen

 $ git config --global push.default matching

Local arbeiten

Dateien zur Versionskontrolle hinzufügen

 $ git add <file/dir> 

normalerweise reicht:

 $ git add . 

Änderung (local) commiten:

 $ git commit 

besser:

 $ git commit -a 

Änderungen hochladen

Änderungen vom Server laden:

 $ git fetch 

Änderungen vom Server mit Arbeitskopie mergen:

 $ git merge master 

(klappt normalerweise automatisch)

Für die letzten beiden Befehle gibt es auch einen Alias:

 $ git pull 

(erste Variante bietet einem jedoch die Möglichkeit erst einmal in Ruhe den diff anszuschaun :))

Änderungen an Server weitergeben:

 $ git push 

Branching

Neuen remote Branch erstellen (aus dem aktuellen (localen) HEAD)

 $ git push origin HEAD:refs/heads/openslx-5.0

(HEAD ist hier nicht zwangsläufig master, sondern der Pointer HEAD, der auf eine beliebige Revision, Branch, .. verweisen kann)

Remote Branch auschecken (und als localen Branch anlegen)

 $ git checkout --track -b openslx-5.0 origin/openslx-5.0 

Sonstiges

Relativ analog zu SVN:

Status:

 $ git status 

Diff:

 $ git diff 

Log:

 $ git log 

..

.gitignore Dateien - Syntax identisch zu svn:ignore