%&preamble
\begin{document}

\frame{\titlepage}

\begin{frame}
	\frametitle{Table of contents}
	\tableofcontents
\end{frame}

\section{Introduction}
\begin{frame}
	\frametitle{Who am I?}
	\begin{itemize}
		\item Mart Lubbers
		\item 4th year bachelor AI
		\item \url{https://github.com/dopefishh/gitflashtalk}
		\item SHA of the commit of this presentation:
			{\tiny\GITAbrHash}
	\end{itemize}
\end{frame}

\begin{frame}
	\frametitle{Where did GIT come from?}
	\begin{block}{History}
		\begin{columns} \column{0.4\linewidth}
			\begin{itemize}
				\item Pronounce: \textipa{[g\'\i t]} 
				\item Linus Thorvalds
				\item Linux kernel
			\end{itemize}

			\column{0.5\linewidth}
			\begin{figure}[H]
				\centering
				\includegraphics[width=0.5\linewidth]{1.png}
				\caption{Linus Torvalds}
			\end{figure}
		\end{columns} 
	\end{block}

	\begin{block}{What is GIT?}
		\begin{itemize}
			\item Version control
		\end{itemize}
	\end{block}
\end{frame}

\begin{frame}
	\frametitle{Why GIT?}
	\begin{block}{Pros}
		\begin{itemize}
			\item Fast
			\item Scaleable
			\item Simple
			\item Support for non linear development
			\item Intermediate stage between committing and pushing
		\end{itemize}
	\end{block}

	\begin{block}{Cons}
		\begin{itemize}
			\item Binary files
			\item Intermediate stage between committing and pushing
		\end{itemize}
	\end{block}
\end{frame}

\section{Basics}
\subsection{Installation}
\begin{frame}[fragile]
	\begin{block}{{\Large\Smiley\Smiley} Linux}
		Depending on the distribution you may have to do:\\
		\lstinline{# apt-get install git}\\
		\lstinline{# pacman -S git}\\
		\lstinline{# yum install git}\\
		\lstinline{# emerge --ask dev-vcs/git}\\
		Etc\ldots
	\end{block}
		
	\begin{block}{{\Large\Frowny\Smiley} Mac}
		Install via XCode tools. Just run \lstinline{\$ git} and
		when GIT is not installed it will prompt you with instructions.
	\end{block}
			
	\begin{block}{{\Large\Frowny\Frowny} Windows}
		Downoad the binary from \url{http://git-scm.com/download/win} and install.
	\end{block}

\end{frame}

\subsection{Getting started}
\begin{frame}[fragile]
	\frametitle{Getting started}
	\begin{block}{Check GIT version in (git) bash}
		\begin{lstlisting}
frobnicator@frobmachine:~\$ git --version
git version 1.7.10.4
		\end{lstlisting}
	\end{block}

	\begin{block}{Create a repository}
		\begin{lstlisting}
frobnicator@frobmachine:~/projects\$ git init myfirstproject
Initialized empty Git repository in /home/frobnicator/projects/myfirstproject/.git/
frobnicator@frobmachine:~/projects\$ ls -1 myfirstproject/.git
branches/
config
description
HEAD
hooks/
info/
objects/
refs/
		\end{lstlisting}
	\end{block}
\end{frame}

\subsection{Four (five) stages}
\begin{frame}
	\frametitle{Four (five) stages}
	\begin{itemize}
		\item (Stash)
		\item Workspace
		\item Index
		\item Local repo
		\item Upstream repo
	\end{itemize}
\end{frame}

\begin{frame}
	\frametitle{Workflow}
	\begin{figure}[H]
		\centering
		\includegraphics[scale=0.4]{2.png}
		\caption{Git workflow}
	\end{figure}
\end{frame}

\begin{frame}[fragile]
	\frametitle{Add and commit}
	\begin{lstlisting}
frobnicator@frobmachine:~/projects/myfirstproject\$ echo "This is a frobfile" > frobbedfile
frobnicator@frobmachine:~/projects/myfirstproject\$ git status
On branch master

Initial commit

Untracked files:
  (use "git add <file>..." to include in what will be committed)

	frobbedfile

nothing added to commit but untracked files present (use "git add" to track)
	\end{lstlisting}
\end{frame}

\begin{frame}[fragile]
	\begin{lstlisting}
frobnicator@frobmachine:~/projects/myfirstproject\$ git add frobbedfile
frobnicator@frobmachine:~/projects/myfirstproject\$ git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

	new file:   frobbedfile
frobnicator@frobmachine:~/projects/myfirstproject\$ git commit
[master (root-commit) 2b7355e] Adds frobbedfile
 1 file changed, 1 insertion(+)
  create mode 100644 frobbedfile
	\end{lstlisting}
\end{frame}

\begin{frame}
	\frametitle{Push}
\end{frame}

\begin{frame}
	\frametitle{Add and commit}
\end{frame}

\begin{frame}
	\frametitle{Add and commit}
\end{frame}

\section{Branching}

\end{document}
