-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathgithub.html
709 lines (693 loc) · 52.7 KB
/
github.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
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Capítulo 46 Git y GitHub R | Fundamentos de ciencia de datos con R</title>
<meta name="author" content="Gema Fernández-Avilés y José-María Montero">
<meta name="description" content="Michal Kinel OKUANT 46.1 ¿Qué es Git y GitHub? Git es un sistema de control de versiones distribuido, diseñado para registrar y rastrear los cambios realizados en un archivo o conjunto de...">
<meta name="generator" content="bookdown 0.37 with bs4_book()">
<meta property="og:title" content="Capítulo 46 Git y GitHub R | Fundamentos de ciencia de datos con R">
<meta property="og:type" content="book">
<meta property="og:image" content="/img/cover.png">
<meta property="og:description" content="Michal Kinel OKUANT 46.1 ¿Qué es Git y GitHub? Git es un sistema de control de versiones distribuido, diseñado para registrar y rastrear los cambios realizados en un archivo o conjunto de...">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Capítulo 46 Git y GitHub R | Fundamentos de ciencia de datos con R">
<meta name="twitter:description" content="Michal Kinel OKUANT 46.1 ¿Qué es Git y GitHub? Git es un sistema de control de versiones distribuido, diseñado para registrar y rastrear los cambios realizados en un archivo o conjunto de...">
<meta name="twitter:image" content="/img/cover.png">
<!-- JS --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://kit.fontawesome.com/6ecbd6c532.js" crossorigin="anonymous"></script><script src="libs/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link href="libs/bootstrap-4.6.0/bootstrap.min.css" rel="stylesheet">
<script src="libs/bootstrap-4.6.0/bootstrap.bundle.min.js"></script><script src="libs/bs3compat-0.6.1/transition.js"></script><script src="libs/bs3compat-0.6.1/tabs.js"></script><script src="libs/bs3compat-0.6.1/bs3compat.js"></script><link href="libs/bs4_book-1.0.0/bs4_book.css" rel="stylesheet">
<script src="libs/bs4_book-1.0.0/bs4_book.js"></script><link href="libs/tabwid-1.1.3/tabwid.css" rel="stylesheet">
<script src="libs/tabwid-1.1.3/tabwid.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- CSS --><link rel="stylesheet" href="bs4_style.css">
<link rel="stylesheet" href="bs4_book.css">
<link rel="stylesheet" href="style.css">
</head>
<body data-spy="scroll" data-target="#toc">
<div class="container-fluid">
<div class="row">
<header class="col-sm-12 col-lg-3 sidebar sidebar-book"><a class="sr-only sr-only-focusable" href="#content">Skip to main content</a>
<div class="d-flex align-items-start justify-content-between">
<h1>
<a href="index.html" title="">Fundamentos de ciencia de datos con <strong>R</strong></a>
</h1>
<button class="btn btn-outline-primary d-lg-none ml-2 mt-1" type="button" data-toggle="collapse" data-target="#main-nav" aria-expanded="true" aria-controls="main-nav"><i class="fas fa-bars"></i><span class="sr-only">Show table of contents</span></button>
</div>
<div id="main-nav" class="collapse-lg">
<form role="search">
<input id="search" class="form-control" type="search" placeholder="Buscar" aria-label="Buscar">
</form>
<nav aria-label="Contenido"><h2>Contenido</h2>
<ul class="book-toc list-unstyled">
<li><a class="" href="index.html">Prefacio</a></li>
<li><a class="" href="pr%C3%B3logo-by-julia-silge.html">Prólogo (by Julia Silge)</a></li>
<li><a class="" href="pr%C3%B3logo-por-yanina-bellini.html">Prólogo (por Yanina Bellini)</a></li>
<li class="book-part">Ciencia, datos, software… y científicos</li>
<li><a class="" href="ciencia-datos.html"><span class="header-section-number">1</span> ¿Es la ciencia de datos una ciencia?</a></li>
<li><a class="" href="metodologia.html"><span class="header-section-number">2</span> Metodología en ciencia de datos</a></li>
<li><a class="" href="ch-110003.html"><span class="header-section-number">3</span> R para ciencia de datos</a></li>
<li><a class="" href="cap-etica.html"><span class="header-section-number">4</span> Ética en la ciencia de datos</a></li>
<li class="book-part">Bienvenidos a la jungla de datos</li>
<li><a class="" href="datos-sql.html"><span class="header-section-number">5</span> Gestión de bases de datos relacionales</a></li>
<li><a class="" href="cap-nosql.html"><span class="header-section-number">6</span> Gestión de bases de datos NoSQL</a></li>
<li><a class="" href="DGDQM.html"><span class="header-section-number">7</span> Gobierno, gestión y calidad del dato</a></li>
<li><a class="" href="cap-130009.html"><span class="header-section-number">8</span> Integración y limpieza de datos</a></li>
<li><a class="" href="chap-feature.html"><span class="header-section-number">9</span> Selección y transformación de variables</a></li>
<li><a class="" href="chap-herramientas.html"><span class="header-section-number">10</span> Herramientas para el análisis en ciencia de datos</a></li>
<li><a class="" href="cap-120006-aed.html"><span class="header-section-number">11</span> Análisis exploratorio de datos</a></li>
<li class="book-part">Fundamentos de estadística</li>
<li><a class="" href="Funda-probab.html"><span class="header-section-number">12</span> Probabilidad</a></li>
<li><a class="" href="Fundainfer.html"><span class="header-section-number">13</span> Inferencia estadística</a></li>
<li><a class="" href="muestreo.html"><span class="header-section-number">14</span> Muestreo y remuestreo</a></li>
<li class="book-part">Modelización estadística</li>
<li><a class="" href="cap-lm.html"><span class="header-section-number">15</span> Modelización lineal</a></li>
<li><a class="" href="cap-glm.html"><span class="header-section-number">16</span> Modelos lineales generalizados</a></li>
<li><a class="" href="cap-gam.html"><span class="header-section-number">17</span> Modelos aditivos generalizados</a></li>
<li><a class="" href="cap-mxm.html"><span class="header-section-number">18</span> Modelos mixtos</a></li>
<li><a class="" href="cap-sparse.html"><span class="header-section-number">19</span> Modelos \(\textit{sparse}\) y métodos penalizados de regresión</a></li>
<li><a class="" href="cap-series-temp.html"><span class="header-section-number">20</span> Modelización de series temporales</a></li>
<li><a class="" href="cap-discriminante.html"><span class="header-section-number">21</span> Análisis discriminante</a></li>
<li><a class="" href="cap-conjunto.html"><span class="header-section-number">22</span> Análisis conjunto</a></li>
<li><a class="" href="tablas-contingencia.html"><span class="header-section-number">23</span> Análisis de tablas de contingencia</a></li>
<li class="book-part">Machine learning supervisado</li>
<li><a class="" href="cap-arboles.html"><span class="header-section-number">24</span> Árboles de clasificación y regresión</a></li>
<li><a class="" href="cap-svm.html"><span class="header-section-number">25</span> Máquinas de vector soporte</a></li>
<li><a class="" href="cap-knn.html"><span class="header-section-number">26</span> Clasificador \(k\)-vecinos más próximos</a></li>
<li><a class="" href="cap-naive-bayes.html"><span class="header-section-number">27</span> Naive Bayes</a></li>
<li><a class="" href="cap-bagg-rf.html"><span class="header-section-number">28</span> Métodos ensamblados: \(\bf \textit {bagging}\) y \(\bf \textit{random}\) \(\bf \textit{forest}\)</a></li>
<li><a class="" href="cap-boosting-xgboost.html"><span class="header-section-number">29</span> \(\bf \textit{Boosting}\) y el algoritmo XGBoost</a></li>
<li class="book-part">Machine learning no supervisado</li>
<li><a class="" href="cap-cluster.html"><span class="header-section-number">30</span> Análisis clúster: clusterización jerárquica</a></li>
<li><a class="" href="no-jerarquico.html"><span class="header-section-number">31</span> Análisis clúster: clusterización no jerárquica</a></li>
<li><a class="" href="acp.html"><span class="header-section-number">32</span> Análisis de componentes principales</a></li>
<li><a class="" href="af.html"><span class="header-section-number">33</span> Análisis factorial</a></li>
<li><a class="" href="mds.html"><span class="header-section-number">34</span> Escalamiento multidimensional</a></li>
<li><a class="" href="correspondencias.html"><span class="header-section-number">35</span> Análisis de correspondencias</a></li>
<li class="book-part">Deep learning</li>
<li><a class="" href="capNN.html"><span class="header-section-number">36</span> Redes neuronales artificiales</a></li>
<li><a class="" href="cap-redes-convol.html"><span class="header-section-number">37</span> Redes neuronales convolucionales</a></li>
<li class="book-part">Ciencia de datos de texto y redes</li>
<li><a class="" href="mineria-textos.html"><span class="header-section-number">38</span> Minería de textos</a></li>
<li><a class="" href="grafos.html"><span class="header-section-number">39</span> Análisis de grafos y redes sociales</a></li>
<li class="book-part">Ciencia de datos espaciales</li>
<li><a class="" href="datos-espaciales.html"><span class="header-section-number">40</span> Trabajando con datos espaciales</a></li>
<li><a class="" href="geo.html"><span class="header-section-number">41</span> Geoestadística</a></li>
<li><a class="" href="cap-econom-esp.html"><span class="header-section-number">42</span> Modelos econométricos espaciales</a></li>
<li><a class="" href="cap-pp.html"><span class="header-section-number">43</span> Procesos de puntos</a></li>
<li class="book-part">Comunica y colabora</li>
<li><a class="" href="cap-120007-informes.html"><span class="header-section-number">44</span> Informes reproducibles con R Markdown y Quarto</a></li>
<li><a class="" href="shiny.html"><span class="header-section-number">45</span> Creación de aplicaciones web interactivas con Shiny</a></li>
<li><a class="active" href="github.html"><span class="header-section-number">46</span> Git y GitHub R</a></li>
<li><a class="" href="geoproces.html"><span class="header-section-number">47</span> Geoprocesamiento en nube</a></li>
<li class="book-part">Casos de estudio en ciencia de datos</li>
<li><a class="" href="cap-crimen.html"><span class="header-section-number">48</span> Análisis de una red criminal</a></li>
<li><a class="" href="cap-publicidad.html"><span class="header-section-number">49</span> Optimización de inversiones publicitarias</a></li>
<li><a class="" href="cap-twitter.html"><span class="header-section-number">50</span> ¿Cómo tuitea Elon Musk?</a></li>
<li><a class="" href="cap-periodismo.html"><span class="header-section-number">51</span> Análisis electoral: de RStudio a su periódico favorito</a></li>
<li><a class="" href="paro-clm.html"><span class="header-section-number">52</span> El impacto de las crisis financiera y de la COVID-19 en el paro de CLM</a></li>
<li><a class="" href="cap-rfm.html"><span class="header-section-number">53</span> Segmentación de clientes en el comercio minorista</a></li>
<li><a class="" href="cap-medicina.html"><span class="header-section-number">54</span> Análisis de datos en medicina</a></li>
<li><a class="" href="cap-futbol.html"><span class="header-section-number">55</span> Messi y Ronaldo: dos ídolos desde la perspectiva de los datos</a></li>
<li><a class="" href="cambioclimatico.html"><span class="header-section-number">56</span> Una nota sobre el cambio climático</a></li>
<li><a class="" href="cap-sist-exp.html"><span class="header-section-number">57</span> Implementación de un sistema experto en el ámbito pediátrico</a></li>
<li><a class="" href="cap-ree.html"><span class="header-section-number">58</span> Predicción de consumo eléctrico con redes neuronales artificiales</a></li>
<li><a class="" href="nlp-textil.html"><span class="header-section-number">59</span> El procesamiento del lenguaje natural para tendencias de moda en textil</a></li>
<li><a class="" href="cap-fraude.html"><span class="header-section-number">60</span> Detección de fraude de tarjetas de crédito</a></li>
<li class="book-part">Appendix</li>
<li><a class="" href="info-session.html"><span class="header-section-number">A</span> Información de la sesión</a></li>
<li><a class="" href="referencias.html">Referencias</a></li>
</ul>
<div class="book-extra">
</div>
</nav>
</div>
</header><main class="col-sm-12 col-md-9 col-lg-7" id="content"><div id="github" class="section level1" number="46">
<h1>
<span class="header-section-number">Capítulo 46</span> Git y GitHub R<a class="anchor" aria-label="anchor" href="#github"><i class="fas fa-link"></i></a>
</h1>
<p><em>Michal Kinel</em></p>
<p>OKUANT</p>
<div id="qué-es-git-y-github" class="section level2" number="46.1">
<h2>
<span class="header-section-number">46.1</span> ¿Qué es Git y GitHub?<a class="anchor" aria-label="anchor" href="#qu%C3%A9-es-git-y-github"><i class="fas fa-link"></i></a>
</h2>
<p>Git es un sistema de control de versiones distribuido, diseñado para
registrar y rastrear los cambios realizados en un archivo o conjunto de
archivos a lo largo del tiempo <span class="citation">(<a href="referencias.html#ref-chacon2014pro">Chacon & Straub, 2014</a>)</span>. Al utilizar Git, se pueden ver y
restaurar versiones anteriores de un archivo, así como fusionar cambios
realizados por diferentes personas en una única versión actualizada.</p>
<p>Por otro lado, GitHub es una plataforma de alojamiento de código online
que utiliza Git como sistema de control de versiones subyacentes. Esta
plataforma permite a los desarrolladores compartir y colaborar en
proyectos de software, alojando el código fuente en la nube <span class="citation">(<a href="referencias.html#ref-astigarraga2022">Astigarraga & Cruz-Alonso, 2022</a>)</span>. Además de
alojar repositorios de Git, GitHub ofrece herramientas adicionales como
seguimiento de problemas, solicitudes de extracción y wiki<a class="footnote-ref" tabindex="0" data-toggle="popover" data-content="<p>Un wiki es un sitio diseñado para que grupos de usuarios puedan crear páginas sencillas y vincularlas entre sí para capturar y compartir ideas rápidamente.</p>"><sup>287</sup></a> de
proyectos, lo cual la ha hecho muy popular para el desarrollo de
software colaborativo y de código abierto.</p>
<p>El uso de Git y GitHub se ha extendido a otros campos más allá del
desarrollo de software, como la ciencia de datos, la documentación
técnica y la colaboración en general. Su popularidad se debe en gran
parte a la facilidad de uso, la flexibilidad y la capacidad de trabajar
en proyectos de software colaborativos de manera eficiente y segura.</p>
</div>
<div id="por-qué-usar-git-y-github" class="section level2" number="46.2">
<h2>
<span class="header-section-number">46.2</span> ¿Por qué usar Git y GitHub?<a class="anchor" aria-label="anchor" href="#por-qu%C3%A9-usar-git-y-github"><i class="fas fa-link"></i></a>
</h2>
<p>Git y GitHub son herramientas para el desarrollo de software moderno que tienen tres importantes ventajas:</p>
<ol style="list-style-type: decimal">
<li><p><strong>Control de versiones y colaboración eficiente.</strong> Git es un sistema
de control de versiones distribuido que permite registrar y rastrear
los cambios realizados en un archivo o conjunto de archivos a lo
largo del tiempo. Esto es especialmente útil cuando se trabaja en
proyectos de software colaborativos, donde múltiples personas pueden
estar editando el mismo archivo al mismo tiempo. Con Git se pueden
ver y restaurar versiones anteriores de un archivo y también
fusionar cambios realizados por diferentes personas en una única
versión.</p></li>
<li><p><strong>Mejora la eficiencia y la seguridad en el desarrollo de software.</strong>
El uso de Git y GitHub permite a los desarrolladores trabajar de
manera más eficiente y segura en proyectos de software. Al utilizar
un sistema de control de versiones como Git, los desarrolladores
pueden colaborar de manera más efectiva y reducir el riesgo de
conflictos o errores en el código. Además, GitHub ofrece
características como la integración continua y la entrega continua
(CI/CD), que automatizan y agilizan el proceso de desarrollo de
software.</p></li>
<li><p><strong>Fomenta la transparencia y la comunidad.</strong> GitHub es una plataforma de alojamiento de código que facilita la colaboración y el versionado de código. Aunque gran parte del código alojado en GitHub es de acceso público debido a su modelo de código abierto, no todos los proyectos son accesibles para el público en general; algunos pueden ser privados y solo estar disponibles para ciertos usuarios o equipos, proporcionando así la flexibilidad de mantener tanto la transparencia del código abierto como la privacidad del código interno dentro de una organización. Además, GitHub cuenta con una vasta comunidad de desarrolladores que pueden ofrecer apoyo y retroalimentación a otros miembros de la comunidad.</p></li>
</ol>
<p></p>
</div>
<div id="sec-instala-git" class="section level2" number="46.3">
<h2>
<span class="header-section-number">46.3</span> Instalación y/o actualización de <strong>R</strong> y RStudio<a class="anchor" aria-label="anchor" href="#sec-instala-git"><i class="fas fa-link"></i></a>
</h2>
<p></p>
<p><strong>R</strong> es un lenguaje de programación utilizado en la estadística y la
ciencia de datos para realizar análisis, modelado y visualización de
datos. <strong>RStudio</strong>, por otro lado, es un entorno de desarrollo integrado
(IDE) que proporciona una interfaz gráfica de usuario para trabajar con
<strong>R</strong>. Instalar o actualizar <strong>R</strong> y RStudio es un proceso relativamente
sencillo que puede llevarse a cabo en los siguientes pasos:</p>
<ol style="list-style-type: decimal">
<li><p>Descargar e instalar <strong>R</strong>: lo primero que se debe hacer es descargar
<strong>R</strong> (<a href="https://www.r-project.org/" class="uri">https://www.r-project.org/</a>). Dependiendo del sistema
operativo, se debe elegir la versión correcta de <strong>R</strong> para
descargar. Una vez que se haya descargado el archivo, se debe seguir
el asistente de instalación para instalar <strong>R</strong> en el equipo.</p></li>
<li><p>Descargar e instalar RStudio: una vez instalado <strong>R</strong>, se puede
proceder a instalar RStudio (<a href="https://posit.co/download/rstudio-desktop/" class="uri">https://posit.co/download/rstudio-desktop/</a>). Al igual que
con <strong>R</strong>, se debe elegir la versión adecuada para el sistema
operativo y seguir el asistente de instalación para instalar
RStudio en el equipo.</p></li>
<li><p>Actualización de <strong>R</strong> y RStudio: para actualizar <strong>R</strong> se debe
abrir <strong>R</strong> y ejecutar el siguiente comando en la consola:</p></li>
</ol>
<div class="sourceCode" id="cb706"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/utils/install.packages.html">install.packages</a></span><span class="op">(</span><span class="st">"installr"</span><span class="op">)</span> </span>
<span><span class="kw"><a href="https://rdrr.io/r/base/library.html">library</a></span><span class="op">(</span><span class="st"><a href="https://talgalili.github.io/installr/">"installr"</a></span><span class="op">)</span></span>
<span><span class="fu">updateR</span><span class="op">(</span><span class="op">)</span></span></code></pre></div>
<p>La ejecución del código anterior instalará el paquete <code>installr</code> y actualizará automáticamente <strong>R</strong> con la última versión disponible. Para actualizar RStudio, se debe
abrir RStudio y verificar si hay una actualización disponible en el
menú “Help” -> “Check for Updates”. En caso afirmativo se recomienda instalar
la última versión.</p>
<!-- En resumen, la instalación o actualización de **R** y RStudio es un -->
<!-- proceso sencillo que se puede realizar siguiendo los pasos mencionados -->
<!-- anteriormente. Mantener estas herramientas actualizadas es importante -->
<!-- para asegurarse de tener acceso a las últimas características y -->
<!-- correcciones de errores. -->
</div>
<div id="configurar-git-github" class="section level2" number="46.4">
<h2>
<span class="header-section-number">46.4</span> Configuración de Git y GitHub<a class="anchor" aria-label="anchor" href="#configurar-git-github"><i class="fas fa-link"></i></a>
</h2>
<p>Configurar Git y GitHub es un paso importante antes de comenzar a
trabajar en proyectos de software colaborativos. Los pasos son:</p>
<ol style="list-style-type: decimal">
<li><p><strong>Instalar Git.</strong> En primer lugar, es necesario instalar Git en el
equipo. Git puede descargarse desde la página oficial de
<a href="https://git-scm.com/downloads">Git</a>. Una vez descargado el
archivo, se debe seguir las instrucciones del asistente de instalación. Además, en la página oficial se encuentra un manual completo
sobre el uso de Git. </p></li>
<li><p><strong>Configurar Git.</strong> Una vez instalado Git, se debe configurar
el nombre de usuario y la dirección de correo electrónico para que los
cambios que se realicen en los repositorios estén correctamente
etiquetados. Para ello, se debe abrir la línea de comandos, Git
Bash, o la terminal de RStudio (Fig. <a href="github.html#fig:c310003002">46.1</a>) y ejecutar los siguientes comandos:
</p></li>
</ol>
<div class="figure" style="text-align: center">
<span style="display:block;" id="fig:c310003002"></span>
<img src="img/terminal.jpg" alt="Terminal de RStudio. " width="60%"><p class="caption">
Figura 46.1: Terminal de RStudio.
</p>
</div>
<pre class="git"><code>$ git config --global user.name "Su Nombre"
$ git config --global user.email "[email protected]"</code></pre>
<p>Con ello se configura el nombre de usuario y la dirección de correo
electrónico de forma global en Git.</p>
<ol start="3" style="list-style-type: decimal">
<li><p><strong>Crear una cuenta en GitHub.</strong> Para utilizar GitHub, es necesario crear
una cuenta en la página oficial de GitHub (<a href="https://github.com/join" class="uri">https://github.com/join</a>).
Una vez creada la cuenta, se debe iniciar sesión en GitHub.
</p></li>
<li><p>El siguiente paso es la autentificación de las conexiones, que puede hacerse bien mediante
clave SSH (Sec. <a href="github.html#clavessh">46.4.1</a>) o bien mediante <em>token</em> de acceso personal (Sec. <a href="github.html#token">46.4.2</a>).</p></li>
</ol>
<div id="clavessh" class="section level3" number="46.4.1">
<h3>
<span class="header-section-number">46.4.1</span> Autentificación de las conexiones mediante clave SSH<a class="anchor" aria-label="anchor" href="#clavessh"><i class="fas fa-link"></i></a>
</h3>
<p>Si se quieren autentificar las conexiones con GitHub mediante una clave SSH (protocolo <em>Secure Shell</em>), el primer paso será <strong>configurar la clave SSH</strong>. La clave SSH es una credencial de acceso para el protocolo de red que permite el acceso remoto a través de una conexión cifrada. Para autentificar las conexiones con GitHub de
manera segura se recomienda configurar una clave SSH en el equipo y
agregarla a la cuenta de GitHub <span class="citation">(véase <a href="referencias.html#ref-happygitwithr">Bryan, 2021</a>, Cap. 10)</span>. Para ello, se debe abrir la línea de
comandos Git Bash o la terminal de RStudio y ejecutar el siguiente comando:</p>
<pre class="git"><code>$ ssh-keygen -t rsa -b 4096 -C "[email protected]"</code></pre>
<p>generándose una clave SSH. A continuación, se debe agregar la clave
SSH al agente de SSH:</p>
<pre class="git"><code>$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/id_rsa</code></pre>
<p>Finalmente, se debe copiar la clave SSH al portapapeles:</p>
<pre class="git"><code>$ clip < ~/.ssh/id_rsa.pub</code></pre>
<p>y agregarla a la cuenta de GitHub siguiendo las instrucciones en la página de configuración de la cuenta de GitHub:</p>
<ul>
<li><p>en la esquina superior derecha de la página del inicio, haga clic en la
foto del perfil y, luego, en “Settings” (Configuración);</p></li>
<li><p>en la sección “Access” de la barra lateral, haga clic en “SSH and GPG keys”;</p></li>
<li><p>haga clic en “New SSH key” para agregar la clave SSH (Fig. <a href="github.html#fig:c310003008">46.2</a>);</p></li>
</ul>
<div class="figure" style="text-align: center">
<span style="display:block;" id="fig:c310003008"></span>
<img src="img/ssh-add-ssh-key-with-auth.png" alt="Llaves SSH en GitHub." width="60%"><p class="caption">
Figura 46.2: Llaves SSH en GitHub.
</p>
</div>
<ul>
<li><p>en el campo “Title” (Título), agregue una etiqueta descriptiva para
la clave nueva. Por ejemplo, si está utilizando un portátil
personal, puede llamar a esta clave “Portátil personal”;</p></li>
<li><p>seleccione el tipo de clave, ya sea de autentificación o de firma;<a class="footnote-ref" tabindex="0" data-toggle="popover" data-content='<p>Para obtener más información sobre la firma de una confirmación,
consulte <a href="https://docs.github.com/es/authentication/managing-commit-signature-verification/about-commit-signature-verification" class="uri">https://docs.github.com/es/authentication/managing-commit-signature-verification/about-commit-signature-verification</a>.</p>'><sup>288</sup></a></p></li>
</ul>
<ul>
<li><p>pegue su clave pública en el campo “Key” (Fig. <a href="github.html#fig:c310003009">46.3</a>);</p></li>
<li><p>haga clic en “Add SSH key” para agregar la clave SSH;</p></li>
<li><p>si se le solicita, confirme su contraseña en GitHub.</p></li>
</ul>
<div class="figure" style="text-align: center">
<span style="display:block;" id="fig:c310003009"></span>
<img src="img/ssh-key-paste-with-type.png" alt="Añadir llave SSH en GitHub." width="60%"><p class="caption">
Figura 46.3: Añadir llave SSH en GitHub.
</p>
</div>
</div>
<div id="token" class="section level3" number="46.4.2">
<h3>
<span class="header-section-number">46.4.2</span> Autentificación basada en <em>token</em> de acceso personal<a class="anchor" aria-label="anchor" href="#token"><i class="fas fa-link"></i></a>
</h3>
<p>Además de utilizar una clave SSH para autentificar las conexiones con
GitHub, también se puede utilizar la autentificación basada en un <em>token</em> de
acceso personal (PAT, por sus iniciales en inglés) de GitHub.</p>
<p>Esta forma de autentificación es
recomendada por GitHub por su seguridad,
especialmente cuando se trabaja con aplicaciones y herramientas que
requieren acceso a repositorios de GitHub.<a class="footnote-ref" tabindex="0" data-toggle="popover" data-content='<p>Para más información sobre el <em>token</em> de acceso personal consulte el
Cap. 9 de <span class="citation">Bryan (<a href="referencias.html#ref-happygitwithr">2021</a>)</span> (<a href="https://happygitwithr.com/https-pat.html" class="uri">https://happygitwithr.com/https-pat.html</a>).</p>'><sup>289</sup></a></p>
<p>A continuación, se describen los pasos para utilizar la autentificación
basada en el <em>token</em> de acceso personal de GitHub.</p>
<ol style="list-style-type: decimal">
<li>
<strong>Generar el</strong> <strong><em>token</em></strong> <strong>PAT</strong>: existen dos librerías, <code>usethis</code> y <code>gitcreds,</code>
que facilitan la generación del PAT y su almacenamiento. Para ello se
introduce en la consola de RStudio:</li>
</ol>
<div class="sourceCode" id="cb711"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html">library</a></span><span class="op">(</span><span class="st"><a href="https://usethis.r-lib.org">"usethis"</a></span><span class="op">)</span></span>
<span><span class="fu">usethis</span><span class="fu">::</span><span class="fu"><a href="https://usethis.r-lib.org/reference/github-token.html">create_github_token</a></span><span class="op">(</span><span class="op">)</span></span></code></pre></div>
<ol start="2" style="list-style-type: decimal">
<li>
<strong>Seguir las instrucciones en GitHub</strong>: a continuación hay que abrir el sito
web de GitHub. Se accede mediante el usuario y contraseña, con el
cuadro para generación del PAT, <em>New personal access token </em>(<em>classic</em>). En <em>Note</em> se introduce una nota identificativa, igual
que en el procedimiento anterior, y se selecciona el tiempo de
validez del PAT en la pestaña <em>Expiration</em>, dejando las demás
opciones por defecto. Se hace clic en <em>Generate token</em> para crear el
<em>token</em>. Se copia el <em>token</em> en la nueva ventana para posteriormente introducirlo en la consola:</li>
</ol>
<div class="sourceCode" id="cb712"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html">library</a></span><span class="op">(</span><span class="st"><a href="https://gitcreds.r-lib.org/">"gitcreds"</a></span><span class="op">)</span></span>
<span><span class="fu">gitcreds</span><span class="fu">::</span><span class="fu"><a href="https://gitcreds.r-lib.org/reference/gitcreds_get.html">gitcreds_set</a></span><span class="op">(</span><span class="op">)</span></span></code></pre></div>
<p>En <em>password</em> se pega el <em>token</em> copiado anteriormente.</p>
<ol start="3" style="list-style-type: decimal">
<li>
<strong>Verificación del PAT</strong>: para verificar que el nuevo PAT está configurado se introduce en la
consola:</li>
</ol>
<div class="sourceCode" id="cb713"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="fu">gitcreds</span><span class="fu">::</span><span class="fu"><a href="https://gitcreds.r-lib.org/reference/gitcreds_get.html">gitcreds_get</a></span><span class="op">(</span>use_cache <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></code></pre></div>
<p>Si la autentificación fue correcta se generará una salida similar a la
siguiente:</p>
<div class="sourceCode" id="cb714"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb714-1"><a href="github.html#cb714-1" tabindex="-1"></a> <span class="sc"><</span>gitcreds<span class="sc">></span></span>
<span id="cb714-2"><a href="github.html#cb714-2" tabindex="-1"></a> protocol<span class="sc">:</span> https</span>
<span id="cb714-3"><a href="github.html#cb714-3" tabindex="-1"></a> host <span class="sc">:</span> github.com</span>
<span id="cb714-4"><a href="github.html#cb714-4" tabindex="-1"></a> username<span class="sc">:</span> mi_usuario</span>
<span id="cb714-5"><a href="github.html#cb714-5" tabindex="-1"></a> password<span class="sc">:</span> <span class="er"><</span><span class="sc">--</span> hidden <span class="sc">-</span><span class="ot">-></span></span></code></pre></div>
<p>Se ha detallado la instalación y configuración de Git, la creación de una cuenta en GitHub y la autentificación mediante clave SSH y <em>token</em> de acceso personal (PAT), estableciendo las bases para un control eficaz de versiones y colaboración.</p>
<p>A continuación, en la Sec. <a href="github.html#git-rstudio">46.5</a>, se tratará la integración de estas herramientas con RStudio, proporcionando instrucciones para facilitar una incorporación fluida en dicho entorno de desarrollo integrado.</p>
</div>
</div>
<div id="git-rstudio" class="section level2" number="46.5">
<h2>
<span class="header-section-number">46.5</span> Conectar Git y GitHub con RStudio<a class="anchor" aria-label="anchor" href="#git-rstudio"><i class="fas fa-link"></i></a>
</h2>
<div id="conectar-rstudio-primero" class="section level3" number="46.5.1">
<h3>
<span class="header-section-number">46.5.1</span> RStudio primero<a class="anchor" aria-label="anchor" href="#conectar-rstudio-primero"><i class="fas fa-link"></i></a>
</h3>
<p>Este apartado se centra en la creación de un nuevo proyecto
en un ordenador local para posteriormente subirlo a GitHub, en remoto.</p>
<p>Una vez instalado y configurado Git en nuestro sistema y ya en disposición de la cuenta
de GitHub, hay que seguir los siguientes pasos para conectar Git y GitHub
con RStudio:</p>
<ol style="list-style-type: decimal">
<li>Configurar Git en RStudio: una vez que Git está instalado en el
sistema, se debe configurar Git en RStudio. Para ello, se debe ir a
la pestaña “Tools” en la barra de menú principal, seleccionar
“Global Options” y luego seleccionar “Git/SVN” (Fig. <a href="github.html#fig:c310003014">46.4</a>). Desde allí, se debe
configurar la ubicación del ejecutable de Git en el sistema.</li>
</ol>
<div class="figure" style="text-align: center">
<span style="display:block;" id="fig:c310003014"></span>
<img src="img/tools-general-options.png" alt="Tools de RStudio." width="50%"><p class="caption">
Figura 46.4: Tools de RStudio.
</p>
</div>
<!-- \text -->
<ol start="2" style="list-style-type: decimal">
<li>Verificar la versión de Git, introduciendo en la Terminal:</li>
</ol>
<pre class="git"><code>$ git --version</code></pre>
<p>Si la salida es la versión de Git, entonces la instalación fue ejecutada correctamente.</p>
<!-- \pagebreak -->
<ol start="3" style="list-style-type: decimal">
<li>Crear un proyecto nuevo desde “File” -> “New project” (Fig. <a href="github.html#fig:c310003016">46.5</a>).</li>
</ol>
<div class="figure" style="text-align: center">
<span style="display:block;" id="fig:c310003016"></span>
<img src="img/new-project.png" alt="Nuevo proyecto de RStudio." width="50%"><p class="caption">
Figura 46.5: Nuevo proyecto de RStudio.
</p>
</div>
<ol start="4" style="list-style-type: decimal">
<li>En el cuadro de la Fig. <a href="github.html#fig:c310003016">46.5</a> se procede dando clic en “New directory”
y en la siguiente ventana se rellenan los datos, como el nombre del
proyecto, y se marca la opción “Create a git repository” para crear
un nuevo proyecto con repositorio de Git (Fig. <a href="github.html#fig:c310003017">46.6</a>).</li>
</ol>
<div class="figure" style="text-align: center">
<span style="display:block;" id="fig:c310003017"></span>
<img src="img/new-project-rstudo.png" alt="Nuevo proyecto en un directorio nuevo." width="50%"><p class="caption">
Figura 46.6: Nuevo proyecto en un directorio nuevo.
</p>
</div>
<!-- \pagebreak -->
<ol start="5" style="list-style-type: decimal">
<li>En el icono de Git, en la parte superior, se accede a la ventana de
revisión de cambios, se añaden los ficheros pinchando en los ticks,
se añade el mensaje de confirmación y se hace clic en “commit” (Fig. <a href="github.html#fig:c310003018">46.7</a>).</li>
</ol>
<div class="figure" style="text-align: center">
<span style="display:block;" id="fig:c310003018"></span>
<img src="img/commit-rstudio.png" alt="Revisión de cambios." width="50%"><p class="caption">
Figura 46.7: Revisión de cambios.
</p>
</div>
<ol start="6" style="list-style-type: decimal">
<li>Alternativamente, se puede utilizar la pestaña de Git, marcando los
ficheros modificados o creados y confirmando mediante clic en “commit”
tras el cual se abrirá el cuadro de diálogo anterior (Fig. <a href="github.html#fig:c310003019">46.8</a>).</li>
</ol>
<div class="figure" style="text-align: center">
<span style="display:block;" id="fig:c310003019"></span>
<img src="img/git-pestana.png" alt="Revisión de cambios." width="60%"><p class="caption">
Figura 46.8: Revisión de cambios.
</p>
</div>
<ol start="7" style="list-style-type: decimal">
<li>Para subir los cambios realizados en el proyecto recién configurado
en RStudio, habiendo configurado Git y GitHub en los pasos
anteriores, se ejecuta el siguiente código:</li>
</ol>
<div class="sourceCode" id="cb716"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html">library</a></span><span class="op">(</span><span class="st"><a href="https://usethis.r-lib.org">"usethis"</a></span><span class="op">)</span></span>
<span><span class="fu">usethis</span><span class="fu">::</span><span class="fu"><a href="https://usethis.r-lib.org/reference/use_github.html">use_github</a></span><span class="op">(</span><span class="op">)</span></span></code></pre></div>
<p>La función <code><a href="https://usethis.r-lib.org/reference/use_github.html">usethis::use_github()</a></code> con los valores por defecto crea un
repositorio público con el nombre de proyecto en la cuenta asociada.
Para ver más opciones acuda a la ayuda de la función, ejecutando en la
consola <code><a href="https://usethis.r-lib.org/reference/use_github.html">?usethis::use_github</a></code>.</p>
</div>
<div id="github-primero" class="section level3" number="46.5.2">
<h3>
<span class="header-section-number">46.5.2</span> GitHub primero<a class="anchor" aria-label="anchor" href="#github-primero"><i class="fas fa-link"></i></a>
</h3>
<p>Este apartado se dedica a explicar el proceso de integración de Git y GitHub con RStudio a partir de un repositorio ya creado en GitHub. El primer paso consiste en verificar si Git está instalado correctamente en el sistema. Esto puede verificarse utilizando el comando <code>git--version</code> en la terminal de RStudio. Una vez confirmada la instalación de Git, se procederá a la configuración de la conexión entre RStudio y el repositorio existente en GitHub. Este proceso implica clonar el repositorio remoto en el sistema local, permitiendo así el acceso y la edición de los archivos de código localmente, al tiempo que se mantiene la capacidad de realizar <em>commits</em>, <em>pushes</em> y <em>pulls</em> hacia el repositorio remoto en GitHub.</p>
<pre class="git"><code>$ git --version</code></pre>
<p>Cuando la salida de la terminal arroje la versión de Git, entonces la instalación fue correcta. En el caso de que la salida no arroje la versión vuelva la Sec. <a href="github.html#configurar-git-github">46.4</a> o consulte el manual de la página oficial de Git en: <a href="https://git-scm.com">https://git-scm.com</a>.</p>
<p>A continuación, se describe paso a paso cómo conectar GitHub y
RStudio a partir de un proyecto ya existente en GitHub y con Git
configurado previamente:</p>
<ol style="list-style-type: decimal">
<li>Abra RStudio y seleccione la opción “New Project” en la pestaña
“File” del menú principal. Posteriormente haga clic en la opción
“Version Control” (Fig. <a href="github.html#fig:c310003022">46.9</a>).</li>
</ol>
<div style="page-break-after: always;"></div>
<div class="figure" style="text-align: center">
<span style="display:block;" id="fig:c310003022"></span>
<img src="img/new-project.png" alt="Nuevo proyecto de RStudio." width="50%"><p class="caption">
Figura 46.9: Nuevo proyecto de RStudio.
</p>
</div>
<ol start="2" style="list-style-type: decimal">
<li>En la ventana emergente que aparece, elija “Git” (Fig. <a href="github.html#fig:c310003023">46.10</a>).</li>
</ol>
<div class="figure" style="text-align: center">
<span style="display:block;" id="fig:c310003023"></span>
<img src="img/new-project-git.png" alt="Crear proyecto desde control de versiones." width="50%"><p class="caption">
Figura 46.10: Crear proyecto desde control de versiones.
</p>
</div>
<ol start="3" style="list-style-type: decimal">
<li>En la ventana que se muestra en la Fig. <a href="github.html#fig:c310003024">46.11</a>, pegue la URL del repositorio que desee clonar y presione “Create Project”. RStudio preguntará en qué
carpeta desea guardar el proyecto; una vez elegida la
ubicación, el proyecto se clonará en la computadora.</li>
</ol>
<div class="figure" style="text-align: center">
<span style="display:block;" id="fig:c310003024"></span>
<img src="img/new-project-git-repo.png" alt="Nuevo proyecto desde un repositorio de Git." width="50%"><p class="caption">
Figura 46.11: Nuevo proyecto desde un repositorio de Git.
</p>
</div>
</div>
</div>
<div id="flujo-de-trabajo-general-de-git-y-github-en-rstudio" class="section level2" number="46.6">
<h2>
<span class="header-section-number">46.6</span> Flujo de trabajo general de Git y GitHub en RStudio<a class="anchor" aria-label="anchor" href="#flujo-de-trabajo-general-de-git-y-github-en-rstudio"><i class="fas fa-link"></i></a>
</h2>
<p>A continuación se describe un flujo básico de trabajo, comenzando desde
RStudio:</p>
<ol style="list-style-type: decimal">
<li><p><strong>Iniciar un repositorio local</strong>: lo primero que hay que hacer es
inicializar un repositorio local en RStudio. Para ello, abra RStudio
y seleccione la opción “New Project” en la pestaña “File” del menú
principal. Luego, seleccione la opción “New Directory” y elija una
ubicación para su proyecto. A continuación, seleccione “Version
Control” y luego “Git”. RStudio le preguntará si desea inicializar
un repositorio en este directorio; haga clic en “Yes”, tal y como se
ha descrito en el punto 1 de la Sec. <a href="github.html#conectar-rstudio-primero">46.5.1</a>.</p></li>
<li><p><strong>Añadir archivos al repositorio</strong>: ahora debe añadir los archivos
de su proyecto al repositorio. Para ello, haga clic en la pestaña
“Git”, en la parte superior derecha de RStudio, y luego seleccione
los archivos que desea agregar al repositorio. Haga clic en el botón
“Stage” y los archivos seleccionados pasarán a la sección “Staged”
en la parte inferior de la pestaña “Git”. Si desea agregar todos los
archivos del proyecto al repositorio, haga clic en el botón “Stage
All”.</p></li>
<li><p><strong>Hacer un “commit” de los cambios</strong>: una vez que los archivos están
en la sección “Staged”, debe hacer un “commit” para registrar los
cambios. Para hacerlo, escriba un mensaje breve que describa los
cambios que ha realizado en la sección “Commit message”. Luego, haga
clic en el botón “Commit”. Los cambios se registrarán en el
repositorio local.</p></li>
<li><p><strong>Crear una rama (opcional)</strong>: si desea trabajar en una nueva
función o corregir un error sin afectar la rama principal (<em>master</em> o
<em>main</em>), debe crear una nueva rama. Para ello, haga clic en el botón
“New Branch” en la pestaña “Git”. Escriba un nombre para la nueva
rama y haga clic en “Create”. Ahora ya es posible hacer cambios en
los archivos en la nueva rama sin afectar la rama principal.</p></li>
<li><p><strong>Subir los cambios al repositorio remoto</strong>: una vez que ha hecho un
“commit” o confirmación de sus cambios, hay que subirlos al
repositorio remoto en GitHub. Para ello, haga clic en el botón
“Push” en la pestaña “Git”. Los cambios se subirán al repositorio
remoto en GitHub, que fue configurado en la Sec. <a href="github.html#configurar-git-github">46.4</a>.</p></li>
<li><p><strong>Solicitar un</strong> <strong><em>pull request</em></strong> <strong>(opcional)</strong>: si trabaja en un proyecto
colaborativo con otros usuarios, debe solicitar un “pull request”
antes de fusionar los cambios en la rama principal. Para hacerlo,
haga clic en la pestaña “Pull Requests” en la interfaz de GitHub.
Luego, haga clic en el botón “New Pull Request” y siga las
instrucciones para crear la solicitud.</p></li>
<li><p><strong>Fusionar los cambios en la rama principal (opcional)</strong>: si trabaja
en una nueva rama y desea fusionar los cambios en la rama principal,
debe crear una solicitud de “pull request”. Si la solicitud es
aceptada por el propietario del repositorio, los cambios se
fusionarán en la rama principal.</p></li>
</ol>
<div class="infobox">
<p><strong>Nota</strong></p>
<ul>
<li><p>El <strong>repositorio local</strong> en Git es una copia completa de un proyecto que se
encuentra en el equipo del usuario. Con un repositorio local, los
usuarios pueden trabajar en un proyecto sin conexión a Internet y
luego enviar los cambios al repositorio remoto cuando estén
conectados.</p></li>
<li><p>El <strong>repositorio remoto</strong> en GitHub es una versión en línea del proyecto
que está almacenada en los servidores de GitHub. Los usuarios pueden
clonar un repositorio remoto a su equipo para tener una copia local
del proyecto y trabajar en ella. Los cambios realizados en la copia
local pueden ser enviados al repositorio remoto para compartirlos
con otros usuarios.</p></li>
</ul>
</div>
<p>En resumen, el flujo de trabajo general de Git y GitHub en RStudio
implica inicializar un repositorio local, añadir archivos al
repositorio, hacer un “commit” de los cambios, crear una nueva rama si es
necesario y subir los cambios al repositorio remoto en GitHub.</p>
<p>Todas las operaciones se pueden realizar desde la terminal de RStudio.
Aquí hay algunos de los comandos más comunes que se utilizan en Git:</p>
<ul>
<li><p><strong>git init</strong>: crea un nuevo
repositorio de Git. Se ejecuta en el directorio raíz del proyecto y
establece la estructura necesaria para que Git rastree los cambios
en el código fuente.</p></li>
<li><p><strong>git clone</strong>: clona un repositorio
existente de Git. Es útil cuando se desea trabajar en un proyecto
que ya está en GitHub o en otro servicio de alojamiento de
repositorios de Git.</p></li>
<li><p><strong>git add</strong>: agrega archivos nuevos o
modificados al área de preparación “Stage” de Git. La preparación es
el primer paso para confirmar los cambios en Git.</p></li>
<li><p><strong>git commit</strong>: confirma los cambios
realizados en el repositorio de Git. Los cambios confirmados se
guardan en la base de datos de Git y se etiquetan con un mensaje que
describe los cambios.</p></li>
<li><p><strong>git push</strong>: envía los cambios
confirmados a un repositorio remoto, como GitHub. Esto actualiza el
repositorio remoto con los cambios realizados en el repositorio
local.</p></li>
<li><p><strong>git pull</strong>: actualiza el repositorio
local con los cambios realizados en el repositorio remoto. Es útil
cuando se está trabajando en un proyecto colaborativo y otros
colaboradores han realizado cambios en el repositorio remoto.</p></li>
<li><p><strong>git branch</strong>: crea, lista y elimina ramas en el repositorio de Git. Las ramas son una forma de
trabajar en diferentes versiones del proyecto sin afectar la rama
principal.</p></li>
<li><p><strong>git merge</strong>: fusiona ramas diferentes del repositorio de Git. Se suele utilizar cuando
se trabaja en diferentes ramas y se desea integrar los cambios
realizados en una rama en la rama principal.</p></li>
<li><p><strong>git status</strong>: verifica el estado del
repositorio de Git. Proporciona información sobre los archivos que
se han modificado y los archivos que se han agregado al área de
preparación.</p></li>
<li><p><strong>git log</strong>: muestra un registro detallado
de los cambios confirmados en el repositorio de Git. Muestra
información como el autor del cambio, la fecha y la descripción del
cambio.</p></li>
</ul>
<p>Para conocer más a fondo la mecánica de Git es muy recomendable el
manual de <span class="citation">Chacon & Straub (<a href="referencias.html#ref-chacon2014pro">2014</a>)</span> o la hoja resumen proporcionada por GitHub,
disponible en <a href="https://training.github.com/downloads/es_ES/github-git-cheat-sheet.pdf" class="uri">https://training.github.com/downloads/es_ES/github-git-cheat-sheet.pdf</a>.</p>
<div id="resumen-45" class="section level3 unnumbered infobox_resume">
<h3>Resumen<a class="anchor" aria-label="anchor" href="#resumen-45"><i class="fas fa-link"></i></a>
</h3>
<ul>
<li><p>Git es un sistema de control de versiones distribuido utilizado para rastrear cambios en archivos a lo largo del tiempo, mientras que GitHub es una plataforma de alojamiento de código que utiliza Git como su sistema de control de versiones subyacente.</p></li>
<li><p>La instalación y configuración de Git y GitHub es sencilla y permite una colaboración eficiente y el control de versiones en el desarrollo de software.</p></li>
<li><p>Conectar GitHub y RStudio implica configurar las credenciales de Git, hacer cambios en los archivos y enviar los cambios al repositorio de GitHub.</p></li>
<li><p>El flujo de trabajo general en Git y GitHub implica inicializar un repositorio local, agregar archivos, comprometer cambios, crear una nueva rama si es necesario, enviar cambios al repositorio remoto, solicitar una solicitud de extracción si se trabaja en colaboración y fusionar cambios en la rama principal.</p></li>
</ul>
</div>
</div>
</div>
<div class="chapter-nav">
<div class="prev"><a href="shiny.html"><span class="header-section-number">45</span> Creación de aplicaciones web interactivas con Shiny</a></div>
<div class="next"><a href="geoproces.html"><span class="header-section-number">47</span> Geoprocesamiento en nube</a></div>
</div></main><div class="col-md-3 col-lg-2 d-none d-md-block sidebar sidebar-chapter">
<nav id="toc" data-toggle="toc" aria-label="Índice del capítulo"><h2>Índice del capítulo</h2>
<ul class="nav navbar-nav">
<li><a class="nav-link" href="#github"><span class="header-section-number">46</span> Git y GitHub R</a></li>
<li><a class="nav-link" href="#qu%C3%A9-es-git-y-github"><span class="header-section-number">46.1</span> ¿Qué es Git y GitHub?</a></li>
<li><a class="nav-link" href="#por-qu%C3%A9-usar-git-y-github"><span class="header-section-number">46.2</span> ¿Por qué usar Git y GitHub?</a></li>
<li><a class="nav-link" href="#sec-instala-git"><span class="header-section-number">46.3</span> Instalación y/o actualización de R y RStudio</a></li>
<li>
<a class="nav-link" href="#configurar-git-github"><span class="header-section-number">46.4</span> Configuración de Git y GitHub</a><ul class="nav navbar-nav">
<li><a class="nav-link" href="#clavessh"><span class="header-section-number">46.4.1</span> Autentificación de las conexiones mediante clave SSH</a></li>
<li><a class="nav-link" href="#token"><span class="header-section-number">46.4.2</span> Autentificación basada en token de acceso personal</a></li>
</ul>
</li>
<li>
<a class="nav-link" href="#git-rstudio"><span class="header-section-number">46.5</span> Conectar Git y GitHub con RStudio</a><ul class="nav navbar-nav">
<li><a class="nav-link" href="#conectar-rstudio-primero"><span class="header-section-number">46.5.1</span> RStudio primero</a></li>
<li><a class="nav-link" href="#github-primero"><span class="header-section-number">46.5.2</span> GitHub primero</a></li>
</ul>
</li>
<li>
<a class="nav-link" href="#flujo-de-trabajo-general-de-git-y-github-en-rstudio"><span class="header-section-number">46.6</span> Flujo de trabajo general de Git y GitHub en RStudio</a><ul class="nav navbar-nav"><li><a class="nav-link" href="#resumen-45">Resumen</a></li></ul>
</li>
</ul>
<div class="book-extra">
<ul class="list-unstyled">
</ul>
</div>
</nav>
</div>
</div>
</div> <!-- .container -->
<footer class="bg-primary text-light mt-5"><div class="container"><div class="row">
<div class="col-12 col-md-6 mt-3">
<p>"<strong>Fundamentos de ciencia de datos con <strong>R</strong></strong>" coordinado por <a href="https://blog.uclm.es/gemafaviles/" class="text-light">Gema Fernández-Avilés y José-María Montero</a>. </p>
</div>
<div class="col-12 col-md-6 mt-3">
<p>Este libro ha sido generado con el paquete de R <a class="text-light" href="https://bookdown.org">bookdown</a>.</p>
</div>
</div></div>
</footer><!-- dynamically load mathjax for compatibility with self-contained --><script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
var src = "true";
if (src === "" || src === "true") src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-MML-AM_CHTML";
if (location.protocol !== "file:")
if (/^https?:/.test(src))
src = src.replace(/^https?:/, '');
script.src = src;
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script><script type="text/x-mathjax-config">const popovers = document.querySelectorAll('a.footnote-ref[data-toggle="popover"]');
for (let popover of popovers) {
const div = document.createElement('div');
div.setAttribute('style', 'position: absolute; top: 0, left:0; width:0, height:0, overflow: hidden; visibility: hidden;');
div.innerHTML = popover.getAttribute('data-content');
var has_math = div.querySelector("span.math");
if (has_math) {
document.body.appendChild(div);
MathJax.Hub.Queue(["Typeset", MathJax.Hub, div]);
MathJax.Hub.Queue(function() {
popover.setAttribute('data-content', div.innerHTML);
document.body.removeChild(div);
})
}
}
</script>
</body>
</html>