Versionskontrolle mit git


Hier eine Sammlung von Befehlen, die sich in den letzten Jahren in der Arbeit mit git als nützlich erwiesen hat:

Ein Repository in Betrieb nehmen

		# Neues lokales Repository anlegen
$ cd any_folder/my_project
$ git init

# Remote-Repository hinzufügen
$ git remote add origin https://github.com/user/repo_name.git
# Beispiel bitbucket mit Angabe des User-Logins,
# der im System mit Passwort hinterlegt wurde
$ git remote add origin https://user@bitbucket.org/user/repo_name.git
# Repository prüfen
$ git remote -v

# Erste Änderungen ins Repository überführen
$ git add my_file.php   # eine Datei hinzufügen
$ git add any_directory/   # Einen Ordner und alles darunter hinzufügen
$ git add --all   # alle Änderungen im Projekt hinzufügen
$ git rm my_file.php   # eine Datei aus dem Repository entfernen
$ git commit -m "initial commit"   # Alle Änderungen commiten

$ git push  <REMOTENAME> <BRANCHNAME>
# Beispiel
$ git push -u origin master   # mit Schalter -u, um den "upstream" für zukünftige push-Befehle festzulegen

# Änderungen aus dem entfernten Repository holen
$ git pull  <REMOTENAME> <BRANCHNAME>
# Beispiele:
$ git pull origin master
$ git pull production feature_123
	

Arbeiten mit Branches

		# alle Branches einem lokalen Repository hinzufügen (inkl. der Remote-Branches)
$ git fetch --all

# Neuen Branch erstellen
$ git checkout -b feature_123

# In einen anderen (bestehenden) Branch wechseln
$ git checkout feature_123

# Branch feature_123 in master mergen
git checkout master
git pull origin master
git merge feature_123
git push origin master

# Alle Branches (lokal und remote) anzeigen
$ git branch -av

# Branch löschen
$ git branch -d feature_123

# Branch bedingungslos löschen, obwohl er noch nicht in einen
# anderen Branch überführt (z.B. master) wurde
$ git branch -D feature_123
	

Aktionen rückgängig machen

		# Änderungen einer Datei zurücksetzen (rollback)
$ git checkout any_directory/my_file.txt

# git add (vor dem Commit) rückgängig machen
$ git reset any_directory/my_file.txt
# bzw. für alle:
$ git reset

# Letzte / aktuellste Cmmit-Nachricht ändern
$ git commit --amend -m "ein aktualisierter Text"

# Alle lokalen Änderungen mit Repository überschreiben:
$ git reset --hard origin/master
# oder
$ git reset --hard origin/my_feature_branch
	

Sonstiges

		# die letzten commits übersichtlich anzeigen
$ git log --stat --oneline

# Änderungen und der Datei my_file.php anzeigen
$ git diff my_file.php

# User-Login für das Repository setzten
$ git config user.name "Joe Ghurt"
$ git config user.email mail@example.com
# User-Login global setzten
$ git config --global user.name "Joe Ghurt"
$ git config --global user.email mail@example.com

# aktuelle git-Version anzeigen
$ git --version
	

Weitere hilfreiche Quellen: