Git - Meine Rezeptesammlung

Veröffentlicht am 06.03.2016.

Die wohl rudimentärste Git-Anleitung.

Git Basics

Neues Repository erstellen:

mkdir reponame
cd reponame
git init

Dateien hinzufügen & committen:

git add index.js
git add *
git commit -m "Bla"

Dateien und Ordner, die nicht hinzugefügt werden sollen, können in der Datei .gitignore benannt werden:

.DS_Store
node_modules/
crappy.php

Zentrales Repository auf einem Ubuntu/Debian-Server anlegen

Git installieren:

apt-get install git

User git anlegen:

adduser git --gecos GECOS --disabled-login

Ich steuere die Zugriffskontrolle über SSH-Keys. Dazu müssen die Public-Keys der berechtigten Personen in der Datei authorized_keys eingetragen werden:

mkdir /home/git/.ssh
cat <path_to_public_key_file> >> /home/git/.ssh/authorized_keys 

Alternativ kann auch ein Passwort für den Git-User vergeben werden:

passwd git

Die Repositories werden dann einfach im Homedir /home/git angelegt:

mkdir /home/git/example.git
cd /home/git/example.git
git init --bare --shared

Auf dem Client können die Repositories dann wie folgt genutzt werden:

git clone git@<servername>:example.git

Lokale Änderungen auf den Server pushen:

git add *
git commit -m "Bla"
git push origin master

Lokales Repository auf dem Server verfügbar machen

git clone --bare reponame reponame.git
scp -r reponame.git git@<servername>:

Branching & Merging

Lokalen Branch anlegen:

git checkout -b branchname

Änderungen können jetzt wie gewohnt zum Branch branchname hinzugefügt werden:

git add *
git commit -m "Blubb"

Zum Master zurückwechseln:

git checkout master

Einen Branch mergen:

git merge branchname

Und ggf. wieder löschen:

git branch -d branchname

Lokale Änderungen verwerfen

Wenn die lokalen Dateien noch nicht zum Index hinzugefügt wurden mit git add

git checkout -- filename

sonst

git fetch origin
git reset --hard origin/master

Änderungen nachvollziehen

Unterschiede zwischen zwei Branches anzeigen:

git diff <branch_a> <branch_b>

Logfiles anzeigen:

git log
git log --author=joe

Logfiles formatiert anzeigen:

git log --pretty=online
git log --graph --oneline --decorate --all

Und überhaupt… RTFM :-)

git log --help
Tilman Moser

Hejdå! Jag är Tilman Moser.

Ich bin Management Berater in der IT Branche.

Im wahren Leben bin ich Vater, Ehemann, Gewicht reduzierender Freizeit-Sportler, Hobby-Linux-Admin und Programmierer. Ich interessiere mich für Darts, Whiskey und Skandinavien.

Auf dieser Seite schreibe ich Dinge auf, die ich sonst wahrscheinlich wieder vergesse. Manches davon ist vielleicht auch für andere interessant... :-)