-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgit.tex
115 lines (100 loc) · 3.07 KB
/
git.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
\documentclass{beamer}
\title{git - the stupid content tracker}
\date{October 25, 2013}
\usefonttheme[onlylarge]{structurebold}
\setbeamerfont*{frametitle}{size=\normalsize,series=\bfseries}
\setbeamertemplate{navigation symbols}{}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{tabularx}
\usepackage{amsfonts}
\usepackage{float}
\usepackage{verbatim}
\usepackage{fancyhdr}
\usepackage{setspace}
\usepackage{listings}
\usepackage{color}
\usepackage[scaled]{beramono}
\definecolor{green}{HTML}{00bb00}
\lstset{
basicstyle=\ttfamily\footnotesize,
keywordstyle=\color[rgb]{0,0,1},
commentstyle=\color[rgb]{0.133,0.545,0.133},
stringstyle=\color[rgb]{1,0,1}
}
\newenvironment{myitemize}{
\begin{itemize}
\setlength{\itemsep}{5pt}
}{\end{itemize}}
\newcommand{\code}[1]{
\lstinline[language=bash,basicstyle=\ttfamily]{#1}
}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}[t,fragile]{What is git?}
\begin{myitemize}
\item<1->
A revision control system that stores all history of your code in an
immutable database.
\item<2->
Each repository is distributed. (No central servers!)
\item<3->
All interaction with a repository is done using the \code{git} command.
\item<4->
The man pages for \code{git} can be cryptic; Google or Stack Overflow is
usually the better option.
\end{myitemize}
\end{frame}
\begin{frame}[t,fragile]{Sharing is caring}
\begin{myitemize}
\item<1->
Two different types of repositories: \textbf{bare} and \textbf{not} bare.
\item<2->
Not bare repositories contain a working set of files for you to manage.
Typically, only a \emph{single} person has access to a non bare repository.
\item<3->
Bare repositories contain a \code{git} database, but lack a working set
of files.
Bare repositories are typically shared with others.
\item<4->
We already have a lot of bare repositories in
\code{/r/bcb/repositories}.
\item<5->
We share by \emph{pushing} and we take by \emph{pulling}.
\end{myitemize}
\end{frame}
\begin{frame}[t,fragile]{What is GitHub?}
\begin{myitemize}
\item<1->
Core feature: a place to store \textbf{a} bare repository that can be
shared with others.
\item<2->
Lots of other stuff: issue tracker, wiki, pretty interface, etc.
\item<3->
Useful for sharing your code with the world, but not necessary for
collaborating with others in our department.
\end{myitemize}
\end{frame}
\begin{frame}[t,fragile]{What goes in a git repository?}
\begin{myitemize}
\item<1->
\textbf{Yes}: Source code, documentation, license, small data files.
\item<2->
\textbf{No}: Executables, large data files, archives.
\item<3->
General rules. They can be broken, but be careful: once a file is
committed to your repository, it can be difficult to remove from your
repository's database completely.
\end{myitemize}
\end{frame}
\begin{frame}[t,fragile]{Getting started}
\begin{myitemize}
\item<1->
Get a GitHub account.
\item<2->
Follow along at https://github.com/TuftsBCB/git-tutorial
\end{myitemize}
\end{frame}
\end{document}