dieser Spickzettel ist "etwas dünn", deswegen empfehle ich auch mal diesen hier weiter: git cheat sheet (von github)
Neues eigenes Projekt lokal anlegen:
git initbestehendes Projekt von einem Server klonen
git clone git@git.domain:projekt.gitDann User + Mailadresse einstellen:
git config user.name "Anna Beispiel"git config user.email "anna.beispiel@example.com"--global kann man diese Werte auch für alle Projekte einstellenWelchen Branch hab ich von dem Project?
git branch * master
Welche Branches gibts auf dem Server?
$ git branch -r origin/HEAD -> origin/master origin/devel origin/master
Den develop-Branch hier lokal registrieren und von remote auschecken
$ git checkout -b devel origin/devel Branch devel set up to track remote branch devel from origin. Switched to a new branch 'devel'
Das alles wird in der .git/config-Datei gespeichert:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@git.domain:projekt.git
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "devel"]
remote = origin
merge = refs/heads/devel
[user]
name = Anna Beispiel
email = anna.beispiel@example.com
Zwei Repositories:
gedachte Arbeitsweise: Entwickelt wird in dev, zusammengefügt in integrate, veröffentlicht in master.
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "release"]
url = git@github.com:myuser/myproject.git
fetch = +refs/heads/*:refs/remotes/release/*
[remote "devel"]
url = git@github.com:myuser/myproject-devel.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "integrate"]
remote = devel
merge = refs/heads/integrate
[branch "dev"]
remote = devel
merge = refs/heads/dev
[branch "master"]
remote = release
merge = refs/heads/master
[gitg]
mainline = refs/heads/integrate
git pull oder git fetch;git mergegit statusgit diff - Zeig Änderungen, die noch nicht für Checkin markiert sindgit diff -cached - Zeig die Änderungen, die für den Checkin markiert sind aber noch nicht eingecheckt sindgit add datei.py - Datei in genau diesem Status für Checkin markierengit -m"fix XY with Q" datei.py - schneller Checkin genau dieser Datei mit Kommentar, auch wenn Datei noch nicht mit add markiert istgit commit -v zeigt im Kommentar-Editor den Diffgit commit --amend - Ändere den letzten Checkin (Kommentar oder um eine eben noch hinzugefügte markierte Änderung)git checkout -- datei - mache Änderungen an Datei rückgängiggit checkout -b newfeature - neuen Branch erzeugen und verwendengit checkout devel - schon bestehenden Branch aufrufengit remote -v - zeig die remote Repositories an + URLgit pull - bevor wir pushen, noch feststellen obs Änderungen auf dem remote Repository gab …git pushgit push <repo> <branch> (z.B. git push origin newfeature) - neuen Branch auf das remote Repository schiebengit log -p -2 - zeige Änderungen der letzten 2 Commits (mit Diff)git tag -a v0.1.3 9fceb02 - nachträglich taggengit push origin v0.1.3 - Tag auf Server schiebengit push origin --tags - alle Tags auf Server schiebengit rebase --interactive 9fcb02 - alle commits nach 9fcb02 zusammenfassen (es erscheint ein editor-Fenster, alle bis auf den obersten mit "squash" statt pick markieren …)Häufig verwendete git Kommandos mit Optionen kann man abkürzen.
Die letzten fünf Änderungen im Gitlog anzeigen, und zwar so dass die letzte Änderung am weitesten unten steht:
so stellt man es ein:
$ git config --global alias.lg5 "log -5 --reverse"
so ruft man es auf:
$ git lg5
und so steht es dann in der eigenen globalen Git Konfigurationsdatei:
# ~/.gitconfig
# ...
[alias]
lg5 = log -5 --reverse
# ...
es gibt sehr sehr viele Anleitungen zu git im Internet, ein paar wenige:
Specials & Tricks:
und viele viele viele mehr ….
gilt für alle Tipps, Tricks & Spickzettel:
dies sind einfache, teils banale Notizen für meinen persönlichen Gebrauch,
die hier eher zufällig auch öffentlich lesbar sind
(vielleicht hilft es ja jemandem weiter). Verwendung auf eigene Gefahr
Fehler-Hinweise, Dankesschreiben , etc. bitte an: web.25@unixwitch.de
weitere Tools / Spickzettel