Git
Ist eine Versionsverwaltung von Dateien.
Ein leeres Repository erzeugen
git init git init ~/Documents/Test
Clone
git clone http://www.kernel.org/pub/scm/git/git.git mycopy git clone email@example.com:whatever folder-name git clone --bare firstname.lastname@example.org:whatever folder-name git clone -b <branch_name> --single-branch <url_of_the_git_repo>
Dateien zum Repository hinzufügen
git add file1 file2 file3 git add . git add *
Dateien aus Repository entfernen
git rm file1 git mv file1 file2
Status
git status
Anzeigen
git show git show-branch --more=10
Log
git log git log masters // gesamten Verlauf eines Repositories git log --follow -p -- <file>
Reset
git reset --hard <commitid> git reset --hard HEAD git revert <commitid>..HEAD
Konfiguration
Git hat eine globale ud lokale Konfiguration, die globale findet man unter ~/.gitconfig. Die lokale Konfiguration ist im jeweiligen Repository unter .git/config zu finden. Die Konfigurationsdateien sind einfache Textdateien im .ini Format.
git config --global user.name "xxx" git config --global user.email "email@example.com"
Um alle Einstellungen angezeigt zu bekommen kann git config -l genutzt werden. Eine Einstellung kann man einfach aus der Konfigurationsdatei löschen oder auf der Konsole ausführen.
git config --unset --global user.email
Remote
git remote set-url origin <newurl> <oldurl>
Commits
git commit -m "message"
Mit gitmoji kann man den Messages noch etwas Farbe mitgeben.
git commit -m ":bug: fixed the bug"
Den letzten Commit noch einmal anpassen.
git commit --amend
Pull/Push
git pull git pull --rebase git push
Die History überschreiben.
git push --force git push --force-with-lease git push --mirror
Branch
Lokalen Branch erstellen.
git branch my_branch git push origin my_branch
Lokalen Branch erstellen, wenn Änderungen vorhanden sind.
git checkout -b my_branch
Löschen eines lokalen Branches.
git branch -d my_branch1 my_branch2 git branch -a git checkout -b <localbranch> <remotebranch> git push -u origin <newbranch> // push a feature branch git push origin --delete <branch> // remove remote branch
Rebase
git fetch origin develop git rebase origin/develop gir push --force
Tags
git tag -l "v1.8.*" git tag -a v1.4 -m "my version 1.4" git push origin v1.5 git push origin --tags git checkout -b version2 v2.0.0
Diff
git diff git diff <Commit> git diff --cached <Commit> git diff <CommitA> <CommitB> git diff <File>
Modules
.gitmodules git submodule init git submodule update