Skip to content
Snippets Groups Projects
Commit 84f01f30 authored by Randolph Maaßen's avatar Randolph Maaßen Committed by Christopher Spinrath
Browse files

git-handout für das WS14/15 angepasst

parent 16a7e7cd
Branches
No related tags found
No related merge requests found
File added
% Vorlage fuer Handouts
% zum Seminar "Diskrete Geometrie und Kombinatorik -- ein topologischer Zugang"
% im WS 2008/09
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Allgemeine Hinweise
% - Halten Sie den LaTeX-Code so uebersichtlich wie moeglich;
% (La)TeX-Fehlermeldungen sind oft kryptisch -- in einem ordentlich
% strukturierten Quellcode lassen sich Fehler leichter finden und
% beseitigen
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Jedes LaTeX-Dokument muss eine \documentclass-Deklaration enthalten
% Diese sorgt fuer das allgemeine Seiten-Layout, das Aussehen der
% Ueberschriften etc.
\documentclass[a4paper,doubleside,DIV8,10pt]{scrartcl}
\usepackage[left=3cm,right=3cm,top=1.5cm,bottom=1cm,includeheadfoot]{geometry}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Einbinden weiterer Pakete
% deutsche Silbentrennung
\usepackage[ngerman]{babel}
% wegen deutschen Umlauten
\usepackage[utf8]{inputenc}
% \usepackage{ngerman} % entsprechend fuer die neue Rechtschreibung
\usepackage{relsize} % fuer \smaller
\usepackage{xcolor}
\usepackage{listings}
\usepackage[fleqn]{mathtools}
\lstset{basicstyle=\ttfamily,
showstringspaces=false,
commentstyle=\color{red},
keywordstyle=\color{blue},
language=bash,
caption={}
}
% Deklaration weiterer Makros
\renewcommand{\labelitemi}{--} % aendert die Symbole bei unnumerierten Aufzaehlungen
\makeatletter % Fussnote ohne Symbol
\def\blfootnote{\xdef\@thefnmark{}\@footnotetext}
% Titel des Handouts
% #1 Name des Vortragenden
% #2 email-Adresse
% #3 Datum des Vortrags
% #4 Titel des Vortrags
\newcommand{\handouttitle}[4]
{\begin{center}
\Large #4
\end{center}
\bigskip
\noindent
#1 (\textsf{#2})
\hfill
#3%
\blfootnote{KISS \glqq GIT Workshop\grqq,
WS~2014, RWTH Aachen University}
\noindent
\rule{\linewidth}{.5pt}
\bigskip
\@afterindentfalse\@afterheading
}
\makeatother
\renewcommand{\sectfont}{\normalfont} % aendert den Font fuer Ueberschriften
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Anfang des eigentlichen Dokuments
\begin{document}
% Titel fuer das Handout -- Sie koennen natuerlich auch selbst etwas entwerfen!
\handouttitle{Randolph Maaßen}
{randolph.maassen@alumni.fh-aachen.de}
{23.~Oktober~2014}
{GIT~Workshop}
\section*{GIT Installieren}
\begin{lstlisting}
$ sudo apt-get install git
$ git config user.name "Dein Name"
$ git config user.email deineMailadresse@hoster.com
\end{lstlisting}
\section*{Git lokal verwenden}
Um Git lediglich lokal zu verwenden kann einfach mittels
\begin{lstlisting}
$ git init reponame
\end{lstlisting}
ein neues Repository namens \textsl{reponame} erzeugt werden.
\section*{Git mit einem Server verwenden}
Meistens bekommt man jedoch eine git URL wenn man an einem Projekt mitarbeiten möchte. Mann kann sich auch ein Repository bei einem der folgenden Anbieter holen:
\begin{itemize}
\item Github.com
\item BitBucket.org
\end{itemize}
Um an einem Projekt mitzuarbeiten Klont man das Repo wie folgt:
\begin{lstlisting}
$ git clone [proto://][user]@[server]:[pfad]
\end{lstlisting}
Bei einigen URLs wird noch ein Protokoll angegeben, z.B. https:// oder git://.
Wird https verwendet ist das Repo nur lesbar geklont, es kann nichts hochgeladen werden.
\section*{SSH-Key}
Wer schon mal mit SSH gearbeitet, oder den Workshop besucht hat weiß es gibt SSH-Keys, die eine sicherere Verbindung ermöglichen, und auch den User besser Identifizieren als ein Login mittels Passwort. In den meisten fällen arbeitet git über SSH, daher kann man auch bei git diesen SSH-Key benutzen.\\
Dabei kann man einen bestehenden Key benutzen oder sich wie folgt einen neuen generieren:
\begin{lstlisting}
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/[yourUser]/.ssh/id\_rsa):
/home/[yourUser]/.ssh/git
\end{lstlisting}
Den Inhalt der dabei erzeugten Datei /home/\textsl{[yourUser]}/.ssh/git.pub kann man nun bei dem Hoster hochladen oder dem Administrator des git per mail zukommen lassen.\\
Man kann SSH (und damit auch git) noch mitteilen, welchen Key es verwenden soll, falls nicht der Standardkey verwendet wird. Dafür ergänzt du die Datei $\sim/.ssh/config$ um folgendes:
\begin{lstlisting}[language=bash,caption={}]
Host [server]
HostName [server]
User [user]
IdentityFile ~/.ssh/git
\end{lstlisting}
wobei du server und user aus der URL entnimmst und die IdentityFile mit dem ssh-keygen abgleichst.
\newpage
\section*{Die wichtigsten GIT Befehle}
\begin{lstlisting}
$ git commit [-a -m "Sinnvoller commit Kommentar"]
\end{lstlisting}
Daten von dem Dateisystem in das Repository schreiben
\begin{lstlisting}
$ git pull
\end{lstlisting}
Daten vom Server anfordern
\begin{lstlisting}
$ git push
\end{lstlisting}
Repository auf den Server übertragen
\begin{lstlisting}
$ git add FILE
\end{lstlisting}
Datei/Ordner zu einem Repository hinzufügen
\begin{lstlisting}
$ git mv FROM TO
\end{lstlisting}
Datei im Dateisystem und im Repository verschieben
\begin{lstlisting}
$ git rm FILE
\end{lstlisting}
Datei im Dateisystem und im Repository löschen
\begin{lstlisting}
$ git status
\end{lstlisting}
Gibt den aktuellen Status des Repositorys im Vergleich zum Dateisystem aus
\begin{lstlisting}
$ git log
\end{lstlisting}
Gibt eine Liste aller “Commits” aus
\begin{lstlisting}
$ git diff
\end{lstlisting}
Zeigt Unterschiede seit dem letzten Commit an
\begin{lstlisting}
$ git reset TO-COMMIT-HASH
\end{lstlisting}
Setzt das Repository auf eine frühere Version zurück
\begin{lstlisting}
$ git --help
$ git [kommando] --help
\end{lstlisting}
Gibt weitere Infos
\section*{Dateien ignorieren}
Es ist zudem möglich Dateien zu ignorieren indem man folgende Datei anlegt: $.gitignore$
\begin{lstlisting}
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
\end{lstlisting}
Es können Beispielsweise Wildcards verwendet werden um, wie im Beispiel, alle Dateien mit der Endung \textquotedblleft.class\textquotedblright zu ignorieren. Zeilen die mit einem Hashtag beginnen sind lediglich Kommentare die von GIT ignoriert werden.
Diese Datei sollte mit in das Repository gelegt werden und gilt für alle Unterverzeichnisse.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Literaturverzeichnis
% - Der Einfachheit halber sind hier bereits alle Quellen eingetragen,
% die im Seminarprogramm auftreten
% - Bitte entfernen Sie alle Quellen, die Sie nicht in Ihrem Handout
% zitieren
% - Umgekehrt muessen Sie natuerlich, wenn Sie weitere Literatur
% zitieren wollen, die entsprechenden Quellen hier einfuegen;
% hierbei kann www.ams.org/mathscinet helfen, die noetigen
% Informationen zu den Quellen zu sammeln
\begin{thebibliography}{99}
\bibitem{wiki} http://de.wikipedia.org/wiki/Git
\bibitem{wiki} http://git-scm.com/book
\end{thebibliography}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ende des Dokuments -- alles, was nach dieser Zeile steht, wird
% von LaTeX ignoriert!
\end{document}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment