%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
% Funktioniert nicht \usepackage[automark]{scrpage2}%
\usepackage[automark]{scrlayer-scrpage}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

%Kopfzeile
\ihead{Softwaretechnik}
\chead{}
\ohead{http://kohnlehome.de/softwaretechnik/git-lokal.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
Lokales git-Repository
\end{center}

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


\section{Konfiguration}
\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 --global init.defaultBranch main} & Standardbranchname\\
\\
\texttt{git config --list --show-origin} & Konfiguration anzeigen\\
\end{tabular}



\section{Neues Repository erstellen}
\begin{tabular}{l l}
\texttt{git init} & Repository im aktuellen Verzeichnis erstellen\\
\end{tabular}

\section{Repository verwalten}
\subsection*{Datei für nächsten Commit vormerken}
\begin{tabular}{l l}
\texttt{git add DATEI} & DATEI zur Staging-Area hinzufügen\\ 
\texttt{git add .} & alle Dateien im aktuellen Verzeichnis zur Staging-Area hinzufügen
\end{tabular}

\subsection*{Commit erstellen}
\begin{tabular}{l l}
\texttt{git commit -m "MESSAGE" } & neue Version speichern\\ 
\end{tabular}

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

\subsection*{Diagnose}
\begin{tabular}{l l}
\texttt{git status} & Staging Area anschauen\\
\texttt{git diff} & Änderungen in Dateien der Staging Area anschauen\\
\texttt{git log --oneline --graph --all} & Commit-History anschauen\\
\end{tabular}

\section{Branches}
\subsection*{Diagnose}
\begin{tabular}{l l}
\texttt{git branch} & Liste aller Branches\\
\end{tabular}

\subsection*{Branch erstellen}
\begin{tabular}{l l}
\texttt{git branch NEUERBRANCH} & neuen Branch anlegen (Zeiger auf aktuellen Commit)\\
\texttt{git checkout NEUERBRANCH} & zu Branch NEUERBRANCH wechseln (HEAD-Zeiger setzen)\\
\end{tabular}

\subsection*{NEUERBRANCH in main mergen}
\begin{tabular}{l l}
\texttt{git checkout main} & \\
\texttt{git merge NEUERBRANCH} & evtl. Konflikt!\\
\texttt{git branch -d NEUERBRANCH} & NEUERBRANCH löschen\\
\end{tabular}

\end{document}
