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:
- https://git-scm.com/docs Das Referenz-Handbuch
- https://www.atlassian.com/de/git/tutorials. Verschiedene Tutorials mit sehr ausführlichen Erklärungen
- https://rogerdudler.github.io/git-guide/index.de.html Eine weitere Zusammenfassung der wichtigsten Befehle