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 init
bestehendes Projekt von einem Server klonen
git clone git@git.domain:projekt.git
Dann 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 merge
git status
git 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 push
git 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.21@unixwitch.de
weitere Tools / Spickzettel