Skip to content
Snippets Groups Projects
Commit 0f38018f authored by Moritz Holtz's avatar Moritz Holtz
Browse files

kiss git Handout von Moritz

parent c608689b
Branches
No related tags found
No related merge requests found
File moved
File moved
File moved
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}
}
% 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~2013/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{Andreas Lenzen}
{andi@fsmpi.rwth-aachen.de}
{24.~Oktober~2013}
{GIT~Workshop}
\section*{GIT einrichten}
\begin{lstlisting}[language=bash,caption={}]
$ sudo apt-get install git
$ git config user.name "Dein Name"
$ git config user.email deineMailadresse@hoster.com
\end{lstlisting}
\section*{RabbitVCS einrichten}
\begin{lstlisting}[language=bash,caption={}]
$ sudo add-apt-repository ppa:rabbitvcs/ppa
$ sudo apt-get update
$ sudo apt-get install rabbitvcs-nautilus3 rabbitvcs-gedit
rabbitvcs-cli
\end{lstlisting}
Entweder ein Neustart oder
\begin{lstlisting}[language=bash,caption={}]
$ pkill nautilus
\end{lstlisting}
\section*{SSH-Key erzeugen}
\begin{lstlisting}[language=bash,caption={}]
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/[yourUser]/.ssh/id\_rsa):
/home/[yourUser]/.ssh/bitbucketGit
\end{lstlisting}
Die Passphrase schützt deinen private-key ! {\bf Nicht leer lassen ! ! !}
Du musst SSH noch mitteilen für welche Verbindungen dieser key verwendet werden soll. Dazu ergänzt du $\sim/.ssh/config$ um folgende Zeilen (Wenn die Datei noch nicht existiert, dann erstelle sie):
\begin{lstlisting}[language=bash,caption={}]
Host bitbucket
HostName bitbucket.org
User git
IdentityFile ~/.ssh/bitbucketGit
\end{lstlisting}
\section*{BitBucket}
\begin{enumerate}
\item Registrierung
\item SSH-Public-Key hinterlegen ($\sim/.ssh/bitbucket.pub$)
\item Repository erstellen
\end{enumerate}
\section*{Repository aus-checken}
\subsection*{RabbitVCS}
Mit RabbitVCS einfach einen Rechtsklick in einen beliebigen Ordner
$\rightarrow RabbitVCS\ Git$
$\rightarrow Clone $
$\rightarrow URL: ssh://git@bitbucket.org/USERNAME/REPOSITORYNAME.git$
$\rightarrow Destination: /pfad/zu/dem/repository$
Beim ersten mal wirst du gefragt ob du dich mit diesem Host verbinden möchtest. Das mit "yes" bestätigen. Nun wirst du nach deiner Passphrase gefragt.
\subsection*{Konsole}
Mit der Konsole:
\begin{lstlisting}[language=bash,caption={}]
$ git clone ssh://git@bitbucket.org/USERNAME/REPOSITORYNAME.git
/pfad/zu/dem/repository
\end{lstlisting}
Auch hier muss man bei der ersten Verbindung mit "yes" bestätigen und deine Passphrase eingeben.
Das Repository befindet sich hier: /pfad/zu/dem/repository
\section*{Die wichtigsten GIT Befehle}
Daten von dem Dateisystem in das Repository schreiben
\begin{lstlisting}[language=bash,caption={}]
$ git commit -a -m "Sinnvoller commit Kommentar"
\end{lstlisting}
Daten vom Server (BitBucket) anfordern
\begin{lstlisting}[language=bash,caption={}]
$ git pull
\end{lstlisting}
Repository auf den Server übertragen
\begin{lstlisting}[language=bash,caption={}]
$ git push
\end{lstlisting}
Datei zu einem Repository hinzufügen
\begin{lstlisting}[language=bash,caption={}]
$ git add FILE
\end{lstlisting}
Datei im Dateisystem und im Repository verschieben
\begin{lstlisting}[language=bash,caption={}]
$ git mv FROM TO
\end{lstlisting}
Datei im Dateisystem und im Repository löschen
\begin{lstlisting}[language=bash,caption={}]
$ git rm FILE
\end{lstlisting}
Gibt den aktuellen Status des Repositorys im Vergleich zum Dateisystem aus
\begin{lstlisting}[language=bash,caption={}]
$ git status
\end{lstlisting}
Gibt eine Liste aller “Commits” aus
\begin{lstlisting}[language=bash,caption={}]
$ git log
\end{lstlisting}
Setzt das Repository auf eine frühere Version zurück
\begin{lstlisting}[language=bash,caption={}]
$ git reset TO-COMMIT-HASH
\end{lstlisting}
\section*{Dateien ignorieren}
Es ist zudem möglich Dateien zu ignorieren indem man folgende Datei anlegt: $.gitignore$
\begin{lstlisting}[language=bash,caption={}]
# 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 ".class" 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.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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
% \end{thebibliography}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ende des Dokuments -- alles, was nach dieser Zeile steht, wird
% von LaTeX ignoriert!
\end{document}
\ No newline at end of file
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,
SS~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{Moritz Holtz}
{moritz@fsmpi.rwth-aachen.de}
{24.~April~2013}
{GIT~Workshop}
\section*{GIT einrichten}
\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}
%Viel schöner ist es natürlich, Git auf einem Server zu verwenden. Dafür brauch man erstmal einen Server, auf dem das Repository liegen soll.\\
Anbieter von Repositorys sind beispielsweise:
\begin{itemize}
\item Github.com
\item BitBucket.org
\end{itemize}
%Es gibt dabei verschiedene Anbieter, wie GitHub.com oder BitBucket.org.
Zudem sollte man einen SSH-Key erzeugen, mit dem man sich später authentifizieren kann:
\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.\\
Nun muss man ssh bzw. git noch mitteilen, welchen Key es verwenden soll. Dafür ergänzt du die Datei $\sim/.ssh/config$ um folgendes:
\begin{lstlisting}[language=bash,caption={}]
Host GitServer
HostName [server]
User [user]
IdentityFile ~/.ssh/git
\end{lstlisting}
Du erhältst in der Regel eine URL in der Form \textsl{[user]@[server]:[pfad]}(Teilweise muss explizit \textsl{ssl-url} ausgewählt werden).\\
\textsl{[user]} und \textsl{[server]} musst du in obiger Datei entsprechend einfügen, \textsl{GitServer} kannst du beliebig, aber möglichst sinnvoll setzen.
Das Repository kannst du dann mittels
\begin{lstlisting}
$ git clone GitServer:[pfad]
\end{lstlisting}
downloaden.
\newpage
\section*{Die wichtigsten GIT Befehle}
Daten von dem Dateisystem in das Repository schreiben:
\begin{lstlisting}
$ git commit -a -m "Sinnvoller commit Kommentar"
\end{lstlisting}
Daten vom Server anfordern:
\begin{lstlisting}
$ git pull
\end{lstlisting}
Repository auf den Server übertragen:
\begin{lstlisting}
$ git push
\end{lstlisting}
Datei/Ordner zu einem Repository hinzufügen:
\begin{lstlisting}
$ git add FILE
\end{lstlisting}
Datei im Dateisystem und im Repository verschieben:
\begin{lstlisting}
$ git mv FROM TO
\end{lstlisting}
Datei im Dateisystem und im Repository löschen:
\begin{lstlisting}
$ git rm FILE
\end{lstlisting}
Gibt den aktuellen Status des Repositorys im Vergleich zum Dateisystem aus:
\begin{lstlisting}
$ git status
\end{lstlisting}
Gibt eine Liste aller “Commits” aus:
\begin{lstlisting}
$ git log
\end{lstlisting}
Zeigt Unterschiede seit dem letzten Commit an:
\begin{lstlisting}
$ git diff
\end{lstlisting}
Setzt das Repository auf eine frühere Version zurück:
\begin{lstlisting}
$ git reset TO-COMMIT-HASH
\end{lstlisting}
Gibt weitere Infos:
\begin{lstlisting}
$ git shelp
$ git [kommando] help
\end{lstlisting}
\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 ".class" 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