Git

Aus THM-Wiki
Wechseln zu: Navigation, Suche
Important.png
Die Seite wird überarbeitet oder erweitert.
Important.png

Git ist ein verteiltes Versionsverwaltungssystem, welches ursprünglich für die Quellcode-Verwaltung des Kernels Linux von Linus Torvalds entwickelt wurde.

Quick Guide

Der Quickguide liefert einen schnellen praktischen Einstieg in Git.


Eine Auflistung der verfügbaren Git Befehle bekommt man mit:

git help

Eine detailierte Hilfe zum jeweiligen Befehl mit:

git help commandname


Basics

Git Repository im aktuellen Verzeichnis erstellen

git init


Dateien oder Verzeichnisse zum Repository hinzufügen

git add foo.html
git add foo.js bar.css
git add somedirectory

git commit -m "Initial project files added"


Änderungen committen

# Ändere foo.html ...

# Zeige alle geänderten Dateien
git status

# Datei in den Index befördern(als zu committen markieren)
git add foo.html

# Committen
git commit -m "Title of website changed to 'Git Tutorial'"

# Alternativ: Alle geänderten Dateien committen.
git commit -a -m "Nachricht ..."


Branching

Neuen Branch erstellen und in diesen wechseln

git branch testing
git checkout testing

# Alternativ: beides in einem:
git checkout -b testing


Testzweig in den Hauptzweig mergen

git checkout master
git merge testing


Mögliche Merge-Konflikte lösen

# Git meldet: 'Merge conflict in foo.html' ... 'Automatic merge failed'
# -> foo.html mit editor öffnen und Konflikt lösen.
# Anschliessend einen Commit der Änderungen machen:
git add foo.html
git commit  # Commit Nachricht wird automatisch gefüllt


Remotes

Entferntes Repository Clonen

git clone git://example.com/path/project.git


Entfernte Änderungen pullen

git pull


Lokale Commits pushen

git push


In ein andere Repositories pushen

# Pushen mit angabe der URL
git push ssh://github.com/alias/project.git

# Alternative: Url als remote speichern, vereinfacht zukünftige Pushs
git remote add github ssh://github.com/alias/project.git
git push github

# Alternative: Standard remote für Branch festlegen
git branch --set-upstream master github/master
git push

# Alternative: Unterschiedliche URL bei push und pull
# origin entspricht standard remote der bei einem git clone angelegt wird
git remote set-url --push origin ssh://github.com/myalias/myproject.git
git push  # pusht nach github/../myproject
git pull  # pullt von orginal clone url


History

Commit history anzeigen

git log


Lokale Änderungen rückgängig machen

git reset --hard  # verwirft alle Änderungen seit dem letzten Commit


Commits rückgängig machen

Sichere Variante: revert (erstellt neuen commit mit rückgängig gemachten Änderungen)
# Letzten Commit rückgängig machen
git revert HEAD

# Beliebigen Commit rückgängig machen
git revert commithash


Unsichere Variante: reset (macht commits wirklich rückgängig)
ACHTUNG: Nur verwenden falls änderungen noch nicht gepusht
## Zum letzten commit zurückkehren
# Änderungen des letzten commits bleiben erhalten
git reset HEAD^  

# Änderungen befinden sich im index (zum committen markiert)
git reset --soft HEAD^

# Änderungen werden komplett verworfen
git reset --hard HEAD^ 

## Zum beliebigen commit zurückkehren 
git reset commithash

Dokumentation

Struktur

== Troubleshooting ==>