introduction done
[ai-gitworkshop.git] / git.tex
1 %&git
2 \begin{document}
3 \begin{frame}
4 \titlepage
5 \end{frame}
6
7 \section{What is GIT}
8 \subsection{Who am I?}
9 \begin{frame}
10 \frametitle{Who am I?}
11 \begin{itemize}
12 \item Mart Lubbers
13 \item Bachelors in Artificial Intelligence
14 \item 1th year master Software science
15 \item
16 {\tiny\url{https://ygdrassil.martlubbers.net/git/gitflashtalk.git}}
17 \item SHA of the commit of this presentation:
18 {\tiny\GITAbrHash}
19 \end{itemize}
20 \end{frame}
21
22 \subsection{What is git}
23 \begin{frame}
24 \frametitle{History of version control}
25 \begin{block}{What is version control?}
26 \begin{itemize}
27 \item Text files
28 \item Collaboration
29 \item Possibly centralized or distributed
30 \end{itemize}
31 \end{block}
32
33 \begin{block}{History}
34 \begin{tabular}{lllp{6em}l}
35 \toprule
36 Gen & Networking & Operations & Concurrency & Examples\\
37 \midrule
38 1 & None & One file & Locks & RCS, SCSS\\
39 2 & Centralized & Multi-file & Merge before commit & CVS, SVN\\
40 3 & Distributed & Changeset & Commit before merge &
41 Git, Mercurial\\
42 \bottomrule
43 \end{tabular}
44 {\tiny Table from \url{%
45 http://ericsink.com/vcbe/html/history_of_version_control.html}}
46 \end{block}
47 \end{frame}
48
49 \begin{frame}[fragile]
50 \frametitle{What is Git}
51 \begin{block}{Origins}
52 \begin{itemize}
53 \item Pronounce: \textipa{[g\'\i t]}
54 \item 2005 because \textit{Bitkeeper} changed terms
55 \item Linux kernel
56 \end{itemize}
57 \end{block}
58
59 \begin{block}{Initial \texttt{readme} from 2005}
60 \begin{minted}{text}
61 GIT - the stupid content tracker
62
63 "git" can mean anything, depending on your mood.
64
65 - random three-letter combination that is pronounceable, and not
66 actually used by any common UNIX command. The fact that it is a
67 mispronounciation of "get" may or may not be relevant.
68 - stupid. contemptible and despicable. simple. Take your pick from the
69 dictionary of slang.
70 - "global information tracker": you're in a good mood, and it actually
71 works for you. Angels sing, and a light suddenly fills the room.
72 - "goddamn idiotic truckload of sh*t": when it breaks
73 \end{minted}
74 \end{block}
75 \end{frame}
76
77 \begin{frame}
78 \frametitle{Why Git?}
79 \begin{block}{Pros}
80 \begin{itemize}
81 \item Fast
82 \item Scaleable
83 \item Simple
84 \item Support for non linear development
85 \item Intermediate stage between committing and pushing
86 \end{itemize}
87 \end{block}
88
89 \begin{block}{Cons}
90 \begin{itemize}
91 \item Binary files
92 \item Intermediate stage between committing and pushing
93 \end{itemize}
94 \end{block}
95 \end{frame}
96
97 \begin{frame}
98 \frametitle{Before we start}
99 \pause
100 \huge Git is not Github
101 \end{frame}
102
103 \section{Introduction}
104 \subsection{Installation}
105 \begin{frame}[fragile]
106 \begin{block}{{\Large\Smiley\Smiley} Linux}
107 Depending on the distribution you may have to do:\\
108 \mint{console}{# apt-get install git}
109 \mint{console}{# pacman -S git}
110 \mint{console}{# yum install git}
111 \mint{console}{# emerge --ask dev-vcs/git}
112 Etc\ldots
113 \end{block}
114
115 \begin{block}{{\Large\Frowny\Smiley} Mac}
116 Install via XCode tools. Just run \mintinline{console}{|\$| git} and
117 when Git is not installed it will prompt you with instructions.
118 \end{block}
119
120 \begin{block}{{\Large\Frowny\Frowny} Windows}
121 Downoad the binary from \url{http://git-scm.com/download/win} and
122 install.
123 \end{block}
124 \end{frame}
125
126 \begin{frame}[fragile]
127 \begin{block}{Linux/Mac}
128 \begin{itemize}
129 \item[Step 1.] Open your favourite terminal.
130 \item[Step 2.]
131 \begin{minted}{console}
132 |\$| git --version
133 git version 2.7.2
134 \end{minted}
135 \end{itemize}
136 \end{block}
137
138 \begin{block}{Windows}
139 \begin{itemize}
140 \item[Step 1.] Open \texttt{git-bash}. \texttt{git-bash} is a UNIX
141 like environment with all the necessary tools.
142 \item[Step 2.]
143 \begin{minted}{console}
144 frobnicator@frobmachine MINGW64 ~
145 |\$| git --version
146 git version 2.7.2.windows.1
147 \end{minted}
148 \end{itemize}
149 \end{block}
150 \end{frame}
151
152 \section{Local}
153
154 \section{Remote}
155
156 \section{Conclusion}
157
158 \end{document}