%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-befehlsuebersicht.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-Befehlsübersicht
\end{center}

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


\section{Lokales git-Repository}

\begin{tabular}{l l}
    \texttt{git init} & neues Repository erstellen\\
    \\
    \texttt{git add . } & Inhalt des aktuellen Verzeichnisses zur Staging-Area hinzufügen\\
    \texttt{git commit -m "Bemerkung"} & neuen Commit erstellen\\
    \\
    \texttt{git branch NEUERBRANCH} & neuen Branch erstellen\\
    \texttt{git checkout NEUERBRANCH} & zu neuem Branch wechseln\\    
    \\
    \texttt{git checkout main} & zu main wechseln\\
    \texttt{git merge NEUERBRANCH} & NEUERBRANCH in main mergen (evtl. Konflikt!)\\
    \texttt{git branch -d NEUERBRANCH} & neuen Branch wieder löschen\\    
\end{tabular}

\subsection*{Diagnose}
\begin{tabular}{l l}
    \texttt{git status} & Working-Directory vs. Staging-Area\\
    \texttt{git log --oneline} & Liste aller bisherigen Commits\\
    \texttt{git diff} & Unterschiede zwischen Working-Directory und Staging-Area\\
    \texttt{git branch} & Branches anzeigen\\    
\end{tabular}

\section{Remote git-Repository}

\begin{tabular}{l l}
    \texttt{git clone URL} & Repository ins aktuelle Verzeichnis kopieren\\
    \\
    \texttt{git fetch} & Remote $\rightarrow$ Lokal\\
    \texttt{git merge origin/main} & origin/main $\rightarrow$ main\\
    \\
    \texttt{git pull} & fetch + merge\\
    \\
    \texttt{git push} & Lokal $\rightarrow$ Remote\\    
\end{tabular}

\subsection*{Diagnose}
\begin{tabular}{l l}
    \texttt{git remote -v} & Remote-Repositories anzeigen\\    
\end{tabular}

\end{document}
