%Teilweise Erzeugt mit dem LaTeX-Generator: http://latex.sehnot.de

%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
\usepackage[automark]{scrpage2}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

%Kopfzeile
\ihead{Softwaretechnik}
\chead{}
\ohead{http://kohnlehome.de/informatik/git.pdf}
\setheadsepline{0.5pt}

%Fußzeile
\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Überschrift 
\begin{center}
\LARGE % Schriftgröße
\bfseries % Fettdruck
\sffamily % Serifenlose Schrift
git
\end{center}

%\section*{Hilfe}
%\begin{tabular}{l l}
%\texttt{git help} & Hilfe\\
%\texttt{git help BEFEHL} & Hilfe zum BEFEHL
%\end{tabular}

\section{Einstellungen}
\begin{tabular}{l l}
\texttt{git config --global user.name "Franz Kohnle"} & Name\\
\texttt{git config --global user.email "franz@kohnlehome.de"} & E-Mail\\
%\texttt{git config --list} & Konfiguration anzeigen
\end{tabular}

\section{Lokales Repository}
\subsection*{Neues Repository erstellen}
\begin{tabular}{l l}
\texttt{git init} & Repository im aktuellen Verzeichnis erstellen\\
\texttt{git init --bare VERZEICHNIS.git} & Repository ohne Arbeitsverzeichnis erstellen
\end{tabular}

\subsection*{Staging Area}
\begin{tabular}{l l}
\texttt{git status} & Staging Area anschauen\\
\texttt{git diff} & Änderungen in Dateien der Staging Area anschauen\\
%\texttt{git add DATEI} & DATEI zur Staging Area hinzufügen\\ 
%\texttt{git add VERZEICHNIS} & VERZEICHNIS zur Staging Area hinzufügen\\ 
\texttt{git add -A} & alle Dateien des Arbeitsverzeichnisses zur Staging Area hinzufügen
\end{tabular}

\subsection*{Commits}
\begin{tabular}{l l}
\texttt{git commit -m "BEMERKUNG"} & Commit anlegen\\
\texttt{git log} & Commit-History anzeigen\\
\texttt{git log --graph --oneline --all} & Commit-History als Baum\\
%\texttt{git log -p} & Commit-History mit Änderungen anzeigen\\
%\texttt{git log --stat} & Commit-History mit Statistik anzeigen\\
%\texttt{git log --pretty=oneline} & kürzer
\end{tabular}

\subsection*{alten Commit wiederherstellen}
\begin{tabular}{l l}
\texttt{git checkout HASHCODE} & zu Commit mit HASHCODE wechseln (HEAD-Zeiger setzen)
\end{tabular}

\subsection*{Branches}
\begin{tabular}{l l}
\texttt{git branch} & alle Branches (Zeiger auf Commits) anzeigen\\
%\texttt{git branch -v} & alle Branches anzeigen mit letztem Commit\\
%\texttt{git branch --merged} & alle Branches anzeigen, die schon mit dem aktuellen gemerget sind\\
\texttt{git branch NAME} & neuen Branch anlegen (Zeiger auf aktuellen Commit)\\
\texttt{git checkout NAME} & zu Branch NAME wechseln (HEAD-Zeiger setzen)\\
%\texttt{git checkout -b NAME} & neuen Branch anlegen und sofort hinwechseln
\end{tabular}

\subsection*{Mergen (Zusammenführen von Zweigen)}
\begin{tabular}{l l}
\texttt{git merge NAME} & aktuellen Branch auf NAME setzen\\
\texttt{git branch -d NAME} & Branch NAME löschen (Zeiger)
\end{tabular}

\section{Mehrere Repositories}
\subsection*{Klonen}
\begin{tabular}{l l}
\texttt{git clone BESTEHENDER-PFAD NEUER-PFAD} & erstellt NEUER-PFAD\\
\end{tabular}

\subsection*{Herunterladen}
\begin{tabular}{l l}
\texttt{git fetch ANDERES-REPO master} & master-Branch von ANDERES-REPO herunterladen\\
\texttt{git log -p HEAD..FETCH HEAD} & Unterschiede anschauen\\
\texttt{git pull ANDERES-REPO master} & master-Branch von ANDERES-REPO herunterladen und\\
& mit aktuellem Branch mergen
\end{tabular}

\subsection*{Hochladen}
\begin{tabular}{l l}
\texttt{git push ANDERES-REPO master} & master-Branch zu ANDERES-REPO hochladen
\end{tabular}

\section{Quellen}
\begin{itemize}
\item \url{http://git-scm.com/book/de}
\item \url{http://schacon.github.io/git/gittutorial.html}
\end{itemize}

\end{document}
