-
Notifications
You must be signed in to change notification settings - Fork 83
/
intro-git.html
139 lines (121 loc) · 6.83 KB
/
intro-git.html
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Un poco de git</title>
<link rel="stylesheet" href="dist/reset.css">
<link rel="stylesheet" href="dist/reveal.css">
<link rel="stylesheet" href="dist/iv.css">
<link rel="stylesheet" href="dist/extra.css">
<!-- Theme used for syntax highlighted code -->
<link rel="stylesheet" href="plugin/highlight/monokai.css">
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-background="https://live.staticflickr.com/8700/16870559579_7468ffc22b_k_d.jpg"><h1>Introducción de git</h1>
<h2>Para infraestructura virtual/Cloud Computing</h2>
<h3><a href="https://github.com/JJ"><code>JJ</code>
en GitHub</a>, <a href="https://twitter.com/jjmerelo"><code>@jjmerelo</code></a></h3>
</section>
<section data-background='https://live.staticflickr.com/87/248357911_1a1aa3cca2_o_d.jpg'><h1><code>git</code> es:</h1>
<h2 class='fragment'>Sistema <em>distribuido</em> de control de <em>fuentes</em></h2>
<h2 class='fragment'>Base de un sistema de gestión de <em>flujos de trabajo</em></h2>
<aside class='notes'>De lo primero se deduce que todo lo que no sea fuente (todo lo que esté generado) no debe estar en el repositorio. De lo segundo, que no sólo se trata de guardar fuentes, sino de iniciar una serie de tareas en el momento que se produzca una incorporación al sistema</aside>
</section>
<section><h1>Trabajaremos en <em>repositorios</em> == <em>repo</em></h1>
<h2 class='fragment'>... fuentes correspondientes a un solo proyecto </h2>
<h2 class='fragment'> <em>local</em>mente (en nuestro ordenador)</h2>
<h2 class='fragment'> <em>remoto</em> (en algún otro lugar)</h2>
<h2 class='fragment'>que contienen diferentes <em>ramas</em></h2>
<h3 class='fragment'>que difieren en uno o más <em>commits</em> (o cambios).</h3>
<aside class='notes'>Como es un sistema distribuido, local y remoto son simplemente ramas del mismo repositorio. Esas ramas se sincronizan, aunque parece parezca que se "sube" a un repositorio remoto</aside>
</section>
<section><h1>Cuenta en <strong>GitHub</strong>/GitLab</h1>
<aside class='notes'>Se puede trabajar sin necesidad del cliente de git, sobre todo en los primeros objetivos. Más adelante será necesario, como es natural.</aside>
</section>
<section><h1>En GitHub/GitLab</h1>
<h1 class="fragment">Añade a GitHub todos tus emails</h1>
<h1 class="fragment">Configura tokens/info recuperación</h1>
<h1 class="fragment">Avatar</h1>
<aside class="notes">Adicionalmente, puedes crear tu perfil
de GitHub y/o tu sitio web
<code>tunick.github/gitlab.io</code>
</aside>
</section>
<section>
<h1>Instala git localmente</h1>
<h1 class="fragment">Y <code>gh</code>, cliente línea de
órdenes de Github</h1>
</section>
<section>
<h1>Localmente</h1>
<h1 class="fragment">Configura email/nombre</h1>
<h3 class="fragment">Incluye info específica del repositorio
(si cuentas diferentes)</h3>
<h1 class="fragment">Crea el par público/privado</h1>
<aside class="notes">Sometimes you need to have specific
configurations for company repos, such as signed commits, or
use the company email for that. Hay que trabajar siempre con la conexión por ssh, nunca por https. Aparte de ser más segura, es más eficiente. Para eso hace falta la clave pública/privada</aside>
</section>
<section><h1>Tres preguntas al crear un repo</h1>
<h1 class="fragment">Nombre → crea <code>README.md</code></h1>
<h1 class="fragment">Licencia</h1>
<h1 class="fragment">Lenguaje → crea
<code>.gitignore</code></h1>
</section>
<section><h1>Pruebas con un repositorio</h1>
<pre>
<code data-line-numbers="1|2|3|4">git clone [email protected]:minick/reponame.git
touch zipi
git add zipi
git commit -am "Crea un fichero súper útil"</code></pre>
</section>
<section><h1><em>Siempre</em> comprueba el <em>status</em></h1>
<pre><code>git status</code></pre>
<aside class="notes">Una precaución de seguridad, que te
permite saber exactamente dónde estás y qué estás haciendo.</aside>
</section>
<section><h1>Usa <em>themes</em> para la línea de órdenes</h1>
<img src="img/status.png" alt="diferentes estados">
<h2 class="fragment">Como <code>oh-my-zsh</code>, <code>oh-my-bash</code></h2>
</section>
<section><h1>La importancia de <code>.gitignore</code></h1>
<pre><code data-line-numbers="1|2|3|4-7">touch .env # Fichero con posible contenido sensible
git add . # NUNCA se debe hacer esto. NUNCA. 🙅🙅🙅⛔⛔⛔🚫🚫🚫
echo .env >> .gitignore # Ese fichero será ignorado por git add
git commit -am ":see_no_evil:"
# -a añade todos los que han cambiado
# m → mensaje en línea
# :see_no_evil: → 🙈</code></pre>
</section>
<section><h1>Sincronizando</h1>
<pre><code data-line-numbers="1|2|3|4">git pull --rebase # Siempre pull antes de push
git status # Siempre status antes de pull
git push # igual que git push origin master
</code></pre>
</section>
<section data-background="https://live.staticflickr.com/4343/36037361984_f71e467a48_k_d.jpg"><h1>Suficiente para una intro</h1>
<aside class="notes">Compra mi libro y todo eso.</aside>
</section>
</div>
</div>
<script src="dist/reveal.js"></script>
<script src="plugin/notes/notes.js"></script>
<script src="plugin/highlight/highlight.js"></script>
<script>
// More info about initialization & config:
// - https://revealjs.com/initialization/
// - https://revealjs.com/config/
Reveal.initialize({
hash: true,
width: '98%',
controls: true,
progress: true,
history: true,
plugins: [ RevealHighlight, RevealNotes ]
});
</script>
</body>
</html>