forked from mikenieva/gitintro
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
executable file
·379 lines (325 loc) · 17.7 KB
/
index.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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<!--[if lt IE 9]>
<link rel="stylesheet" type="text/css" href="css/xSquare_style_IE.css" />
<![endif]-->
<head>
<!-- Basic Page Needs
================================================== -->
<title>Expogit | #mejorandocurso</title>
<meta charset="utf-8" />
<meta name="description" content="Guía de GIT para Comunidad Mejorando.la">
<meta name="author" content="Miguel Nieva" />
<meta name="robots" content="all">
<!-- Mobile Specific Metas
================================================== -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<!-- CSS
================================================== -->
<link rel="stylesheet" href="stylesheets/styles.css">
<link rel="stylesheet" href="stylesheets/pygment_trac.css">
<script src="javascripts/scale.fix.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="shortcut icon" href="https://cursos.mejorando.la/static/images/favicon.ico">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Facebook Specific Metas (Agregados en functions.php)
================================================== -->
<!-- the default values -->
<meta property="fb:app_id" content="217071421678331" />
<meta property="fb:admins" content="10151083850065357" />
<meta property="og:url" content="http://miguelnieva.github.com/expogit/"/>
<meta property="og:title" content="ExpoGIT | #mejorandocurso" />
<meta property="og:description" content="Exposición y documentación sobre tema GIT para los estudiantes de #mejorandocurso en Mejorandola. Expositor: @mikenieva" />
<meta property="og:type" content="website" />
<meta property="og:image" content="https://secure.gravatar.com/avatar/bca17b9de996dd31684a1352d4ef5dfa?s=420&d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png" />
<!-- Favicons
================================================== -->
<link rel="shortcut icon" href="https://mejorando.la/static/images/favicon.ico">
<!-- JS Scripts
================================================== -->
</head>
<body>
<div class="wrapper">
<header>
<a target="_blank" href="http://www.mejorando.la"><img class="imago" src="images/mejorandola.png" /></a>
<h1 class="header">ExpoGIT</h1>
<p class="header">#mejorandocurso </p>
<p> Una iniciativa de Comunidad Mejorando.la</p>
<ul>
<li class="download"><a target="_blank" class="buttons" href="http://git-scm.com">Web Oficial GIT</a></li>
<li class="download"><a class="buttons" href="#estudio">Guías y Videos</a></li>
<br />
<li class="download"><a class="buttons" href="#tendencias">Tendencias</a></li>
<li class="download"><a class="buttons" href="#instalacion">Instalación GIT</a></li>
</ul>
</header>
<section>
<h3>Bienvenidos Comunidad Mejorandola</h3>
<p>Les presentamos un recurso de material de apoyo para que los estudiantes del <a href="https://mejorando.la/cursos/diseno-desarrollo-web-online">curso en Mejorandola</a> puedan desarrollar su talento Web en el popular sistema de control de versiones GIT y en la comunidad GitHub.</p>
<p>Si eres estudiante del curso y te gustaría complementar más información sobre este material de apoyo, <a href="https://github.com/miguelnieva/expogit" target="_blank">envía un "Pull Request" al repositorio y con todo gusto mejoramos la documentación.</a></p>
<h3>Apoyos y Colaboración</h3>
<p>Cóntáctanos para que sigamos exponiendo más temas tecnológicos.<a href="https://plus.google.com/communities/116829322997134963592?hl=es-419"> Esto es una iniciativa de Generación Mejorandola.</a></p>
<p>¿Te gustó el documento? Compártelo y manda un tweet con el hashtag <a href="www.twitter.com/#mejorandola">#mejorandola </a>. Estén pendientes de sus próximos cursos para material adicional.</p>
<p>Disfrútenlo.</p>
<br>
<div class="video-container">
<iframe width="560" height="315" src="http://www.youtube.com/embed/C_xFDRsEM7A" frameborder="0" allowfullscreen></iframe>
</div>
<br>
<a name="estudio">
<h3>Guías de Estudio</h3>
</a>
<div class="video-container">
<iframe src="http://www.slideshare.net/slideshow/embed_code/15939681" width="615px" height="470px" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:none;" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
</div>
<br>
<ul>
<li><p><a target="_blank" href="http://rogerdudler.github.com/git-guide/index.es.html">GIT "La guía sencilla".</a></p></li>
<li><p><a target="_blank" href="http://git-scm.com/book/es">Pro GIT.</a></p></li>
<li><p><a target="_blank" href="http://try.github.com/levels/1/challenges/1">Try GIT.</a></p></li>
<li><p><a target="_blank" href="http://gitimmersion.com/index.html">Git Immersion.</a></p></li>
<li><p><a target="_blank" href="http://www.lynda.com/Git-tutorials/Git-Essential-Training/100222-2.html">Git Essential Training. </a></p>
</li>
</ul>
<p>Para complementar y perfeccionar GIT, Christian Van Der Henst nos dá una explicación impecable en la utilización de esta tecnología.</a></p>
<div class="video-container">
<iframe width="560" height="315" src="http://www.youtube.com/embed/udughzlN5M4" frameborder="0" allowfullscreen></iframe>
</div>
<a name="tendencias"></a>
<h3>GIT + Github - El futuro de la Colaboración Web</h3>
<p>
"Trabajar en equipo". La tendencia de los próximos años va vinculada con compartir y colaborar. Github está creciendo enormemente y sus gráficas no mienten.
</p>
<img src="images/grafica.png" />
<p>
Con cerca de 3 millones de usuarios y casi 5 millones de repositorios, GIT se ha posicionado por su gran bondad de compartir y agilizar los proyectos Web.
</p>
<h3>¿Qué está ocurriendo con la Web?</h3>
<p>
En este momento, empresas de todo el planeta están buscando desesperadamente personas con perfiles que incluyan tecnología.
</p>
<p>
La nueva ola de los Startups y el emprendimiento digital también tiene bastante demanda. Incluso en las iniciativas como Startup Weekend ó incubadoras tecnológicas como el Founder Institute insisten en que el equipo es vital y de diferentes disciplinas, principalmente profesionales Web (Diseño, Programación, Marketing Digital, Comunicación, etc.)
</p>
<img src="images/sw.png" />
<p>
Todo parece increíble, PERO, al mismo tiempo hay muy pocos profesionales de la Web... al menos por ahora.
</p>
<h3>Los nuevos profesionales Web deben saber trabajar en equipo</h3>
<p>
Esta gran demanda y poca oferta ha obligado a las empresas ha buscar talento fuera del país, de forma internacional. Por lo tanto, tomar en cuenta que tu próxima aventura laboral sea a distancia no será tan radical en unos años.
</p>
<p>
En un futuro saber llevar un proyecto sin estar físicamente ahí ya no será un "Plus", será un requisito. Debemos prepararnos desde ahora.
</p>
<h3>A partir de esta necesidad, ¿cómo nos organizamos y colaboramos?</h3>
<p>
A través de los Sistemas de Control de Versiones y las comunidades. Éstos fueron creados para gestionar código, historial de avances y sobre todo, compartir el proyecto.
</p>
<a name="instalacion"></a>
<h3>Instalar GIT</h3>
<p>
Para poder instalar GIT en tu computadora, lo primero que tienes que hacer es entrar a esta página:
<ul>
<li><p><a href="http://git-scm.com/">Website Oficial GIT</a></p>
</li>
</ul>
</p>
<p>
Nos vamos a la sección <a href="http://git-scm.com/downloads">"Downloads"</a> y escogemos nuestro sistema operativo.
</p>
<p>Algo muy importante es que se está instalando GIT para trabajar en consola, NO estamos instalando los clientes (el cual incluyen interfaces de usuario amigables para gestionar los proyectos).</p>
<p>Para trabajar con los clientes de GIT(incluidos los de Github), hay una sección llamada <a href="http://git-scm.com/downloads/guis">"GUI Clients"</a>, ahí ustedes pueden descargar los clientes para una mejor gestión de su código sin utilizar supuestamente la terminal.</p>
<p>Sin embargo, recomiendo mucho aprender a utilizar GIT en la terminal debido a que los clientes pueden en algún momento tener un conflicto entre archivos y se le pide al usuario que lo resuelva a través de la terminal.</p>
<p>Es como aprender a manejar un auto en automático y estándar. Si te vas directo al automático, pierdes la oportunidad de manejar otro tipo de vehículos, uno nunca sabe cuando necesitarás la habilidad de utilizar las velocidades.</p>
<h3>¿Está GIT instalado?</h3>
<p>Para confirmar que GIT esté totalmente listo para trabajar, abrimos nuestra terminal ó consola y después ejecutamos el siguiente comando:</p>
<pre>
<code>$git --version
git 1.8.0.3
</code></pre>
<h3>¡A configurar!</h3>
<p>Una vez instalado, debemos de configurar GIT, con el fin de posteriormente vincularlo con GitHub, además es nuestra firma de autor a todos los movimientos que hagamos.</p>
<pre>
<code>$git config --global user.name "Miguel Nieva"
$git config --global user.name "[email protected]"
</code></pre>
<p>El comando "config" es para hacer cambios dentro del archivo ".gitconfig", el cual guarda TODA tu información y configuración de GIT.
</p>
<p>
En la parte de "--global", significa que estás realizando cambios de GIT sobre la configuración de tu usuario en tu Sistema Operativo. Como dato extra, se puede configurar a nivel sistema que afecta a todos los usuarios y a nivel proyecto, que sólo afecta al proyecto en cuestión.
</p>
<p>
Pero no te preocupes, "--global" es la que más vamos a usar :).
</p>
<p>
Finalmente tenemos "user.name" que significa el nombre usuario y "user.email" que significa el correo electrónico (es importante que coloques el correo electrónico que usas con Github para que se vincule con la cuenta).
</p>
<p>Verifica tus datos con este comando:</p>
<pre>
<code>$git config --list
user.name=Miguel Nieva
</code></pre>
<h3>Usar GIT Help</h3>
<p>Para conocer TODO lo que puedes hacer con GIT, este comando te permite ver una descripción completa sobre todos los comandos y funciones de GIT</p>
<pre>
<code>$git --help</code>
</pre>
<p>Como podrás observar, puedes hacer combinaciones para conocer la descripción de cada comando. Por ejemplo:</p>
<pre>
<code>$git --help add</code>
</pre>
<p>Como podrás observar, al estar dentro de la terminal, la manera de moverte será tecleando:
<ul>
<li>"f" - Forward o adelante</li>
<li>"b" - Backward o atrás</li>
<li>"q" - Salir</li>
</ul>
<h3>Instalar llave SSH</h3>
<p>La llave SSH te va a permitir conectarte con tu cuenta de Github. Una vinculación de tu área local(tu ordenador en este caso) y el área remota(los servidores de Github).</p>
<p>Por lo tanto para poder conectarte debes de teclear:</p>
<pre>
<code>$ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/you/.ssh/id_rsa):
</code>
</pre>
<p>Le das ENTER y después te pedirá que agregues una contraseña, el cual es recomendable:</p>
<pre>
<code>
Enter passphrase (empty for no passphrase): [Contraseña]
Enter same passphrase again: [Repetir contraseña]
</code>
</pre>
<p>El cual te aparecerá un mensaje parecido a este:</p>
<pre>
<code>
Your identification has been saved in /home/you/.ssh/id_rsa.
Your public key has been saved in /home/you/.ssh/id_rsa.pub.
The key fingerprint is:
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected]
</code>
</pre>
<p>Después, para ver la llave SSH, vas a teclear:</p>
<pre>
<code>$cd .ssh
$cat id_rsa.pub</code>
</pre>
<p>Finalmente, copiarás toda la llave desde "ssh-rsa" hasta el final y la copiarás en tu perfil de Github -> Account Settings -> SSH Keys y finalmente le darás "Add SSH Key" para pegarlo. Debe de estar completo y exacto.</p>
<h3>Comprobar llave SSH</h3>
<p>Para comprobar que nuestra llave está instalada y tenemos la vinculación de Github con nuestra área local, tecleamos en la consola:</p>
<pre>
<code>ssh -T [email protected]
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?</code>
</pre>
<p>Esto significa que está todo perfecto. Le das "Yes" y después te saldrá este mensaje de éxito:</p>
<pre>
<code>Hi username! You've successfully authenticated, but GitHub does not
provide shell access.</code>
</pre>
<h3>Descarguemos un Repositorio</h3>
<p>Vamos a ir un repositorio para descargarlo; en este caso usaremos el de "expogit" y le daremos "Fork" el cual hace un repositorio exacto del proyecto que estás copiando dentro de tu perfil.</p>
<p>A comparación de "Clone", Fork te permite interactuar con un repositorio personal del proyecto para posteriormente contribuir con tu código a través de un botón llamado "Pull Request" que veremos pronto. Si sólo deseas copiarlo, puedes utilizar "Clone".</p>
<p>Después, crearemos una carpeta dentro de nuestro disco duro y le pondremos el nombre de "expogit".</p>
<p>Iremos a la consola y teclearemos:</p>
<pre>
<code>$cd ~/expogit
#Donde hayas colocado la carpeta</code>
$git init
# Es un comando que significa iniciar GIT en este proyecto,
el cual empezará a rastrear todos los movimientos y cambios que hagas.
$git remote add origin [email protected]:MiguelNieva/expogit.git
# Creamos el enlace remoto del repositorio de Github con el
repositorio en local.
$git pull
# Traemos toda la información que se encuentra en el repositorio,
incluyendo todas las ramas, si necesitas traer una rama específica
puedes agregar "origin master" ó por ejemplo "origin gh-pages"
si hay una página para ello.
</pre>
<p>Con esto, ya tenemos en nuestra carpeta y en un nuestro perfil de Github, una copia completa del repositorio del proyecto.</p>
<h3>Hacer cambios y proponerlos al proyecto principal</h3>
<p>Una vez que hacen cambios dentro de la carpeta de su repositorio en local(en su ordenador), podemos observar todo eso con el comando:</p>
<pre>
<code>$git status
# On branch gh-pages
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: index.html
#
# no changes added to commit (use "git add" and/or "git commit -a")
</code>
</pre>
<p>Como podrán observar, hay un cambio de modificación en el archivo "index.html". La ventaja de GIT es que te permite escoger cuáles archivos quieres preparar para subirlos al repositorio. Puede que no quieras subir todos los archivos y es válido.
</p>
<p>
Antes de subirlos al repositorio, se te pide que los pongas
en un área llamada "stage", que significa estacionarlos para
posteriormente enviarlos a tu repositorio en LOCAL a través de
un registro de cambios llamados "commits". Después, estos commits son
los que enviaremos finalmente al repositorio en GITHUB.</p>
<p>Primero, vamos a preparar el archivo, escríbiremos en la consola:</p>
<pre>
<code>$git add index.html
$git status
# On branch gh-pages
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: index.html
#
</code>
</pre>
<p>A diferencia del otro mensaje, te dice que los cambios ya pueden subir al repositorio a través de un comando que se llama "commit". Vamos a ejecutarlo:</p>
<pre>
<code>$git commit -m "Index modificado"
</code>
</pre>
<p>El "-m" significa mensaje, que es el título de tu commit.
Y entre comillas escribimos el título.
</p>
<p>En este momento, acabamos de guardar un registro de cambios
del repositorio en tu disco duro, en local. Ahora, hay que enviar
esos cambios al repositorio de GitHub para que agregue, modifique o elimine archivos del repositorio de tu perfil y esté sincronizado con tu repositorio en local. Adicionalmente, todo mundo lo podrá ver
y tendrás tu código a salvo (si explota tu computadora,
perderías todo lógicamente, por lo que "en la nube" es mejor).</p>
<p>Subimos a Github el repositorio de nuestro disco duro al repositorio
de Github:</p>
<pre>
<code>$git push origin master
# Si lo vamos a subir a otra rama (branch), cambiaremos la
# palabra master por el nombre de la rama.
</code>
</pre>
<p>Y listo, verás cambios en tu repositorio en Github.</p>
<h3>Colaborar con un proyecto</h3>
<p>La bondad de Github no es sólo almacenar código, si no también
colaborar. De acuerdo al tema anterior, hiciste un "fork" del
repositorio principal en tu perfil.
Todos los cambios que estuviste haciendo están almacenados en el
repositorio de tu perfil, NO en el repositorio del autor principal, por
lo que para enviar propuestas de cambio, existe un botón llamado
"Pull Request", el cual propone cambios al repositorio del autor principal a partir de tu repositorio en GitHub.
</p>
<p>Obviamente, el autor no sabe qué código tienes en tu disco duro; lo único
que podrá ver es el código que tienes en el repositorio "clon" del proyecto
en tu perfil, por lo que al presionar "Pull Request" en la página
del proyecto principal, te pedirá que selecciones qué rama y modificaciones
quieres presentarle al autor para que él decida si incorporarlo al
repositorio principal o simplemente rechazar tus cambios.</p>
</section>
</div>
<!--[if !IE]><script>fixScale(document);</script><![endif]-->
</body>
</html>