Control de versiones con Git

El Hombre Lobo y Drácula han sido contratados por Universal Missions (una spinoff de servicios de Euphoric State University) para investigar si es posible enviar su próximo explorador planetario a Marte. Ellos quieren poder trabajar al mismo tiempo en los planes, pero ya han experimentado ciertos problemas anteriormente al hacer algo similar. Si se rotan por turnos entonces cada uno gastará mucho tiempo esperando a que el otro termine, pero si trabajan en sus propias copias e intercambian los cambios por email las cosas se perderán, se sobreescribirán o se duplicarán.

Un colega sugiere utilizar control de versiones para lidiar con el trabajo. El control de versiones es mejor que el intercambio de ficheros:

Los equipos no son los únicos que se benefician del control de versiones: los investigadores independientes se pueden beneficiar en gran medida. Mantener un registro de qué ha cambiado, cuando y porqué es extremadamente útil para todos los investigadores si alguna vez necesitan retomar el proyecto en un momento posterior (e.g. un año después, cuando el se ha desvanecido el recuerdo de los detalles).

El control de versiones es la bitácora de laboratorio del mundo digital: es lo que los profesionales utilizan para darle seguimiento a lo que han hecho y colaborar con otras personas. Todos los proyectos de desarrollo de software de grandes dimensiones utilizan estas herramientas, y la mayoría de los programadores lo utilizan también para sus pequeños proyectos. No solamente se limita al software: libros, artículos científicos, pequeños conjuntos de datos, en fin, todo lo que pueda ser modificado en el tiempo o necesite ser compartido puede y debe ser almacenado en un sistema de control de versiones.

Pre-requisitos

En esta lección utilizamos Git desde el terminal de Unix. Se espera de los participantes alguna experiencia previa, pero esto no es requisito indispensable.

Horario

Configuración Descargar los archivos necesarios para la lección
00:00 1. Control Automatizado de Versiones ¿Qué es el control de versiones y por qué se deberá usar?
00:05 2. Configurando Git Cómo me preparo para utilizar Git?
00:10 3. Creando un repositorio ¿Dónde almacena Git la información?
00:20 4. Rastreando Cambios ¿Cómo registro cambios en Git?
¿Cómo reviso el estatus de mi repositorio de control de versiones?
¿Cómo registro notas acerca de los cambios que he hecho y por qué?
00:40 5. Explorando el **History** ¿Cómo puedo identificar versiones anteriores de archivos?
¿Cómo puedo revisar mis cambios?
¿Cómo puedo recuperar versiones anteriores de archivos?
01:05 6. Ignorando cosas ¿Cómo puedo decirle a Git que ignore los archivos que no quiero rastrear?
01:10 7. Repositorios remotos en GitHub ¿Cómo puedo compartir los cambios con otros en el web?
01:40 8. Trabajos en colaboración ¿Cómo puedo usar el control de versiones para colaborar con otras personas?
01:45 9. Conflictos ¿Qué hago cuando mis cambios entran en conflicto con los de otra persona?
02:00 10. Ciencia abierta ¿Cómo un control de versiones me puede ayudar a tener mi trabajo más abierto?
02:10 11. Licencia ¿Qué información sobre licencias debería incluir en mi trabajo?
02:15 12. Citas ¿Cómo puedo hacer que mi trabajo sea más fácil de citar?
02:17 13. Hospedaje ¿Dónde debería alojar mis repositorios de control de versiones?
02:27 14. Usando Git desde RStudio ¿Cómo puedo usar Git desde RStudio?
02:37 Finish

El horario real puede variar ligeramente dependiendo de los temas y ejercicios elegidos por el instructor.