El Control de Versiones con Git: Cheatsheets de Git para Referencia Rápida

Puntos Clave

Control Automatizado de Versiones
  • El control de versiones es como un ‘deshacer’ sin límites.

  • El control de versiones permite que mucha gente trabaje en lo mismo en paralelo.

Configurando Git
  • Use git config para configurar un nombre de usuario, email, editor, y otras preferencias.

Creando un repositorio
  • git init inicializa un repositorio.

Rastreando Cambios
  • git status muestra el estatus de un repositorio.

  • Los archivos pueden ser almacenados en un directorio de trabajo del proyecto (el cual ven los usuarios), el staging area (donde el siguiente commit está siendo construido) y el repositorio local (donde los commits son registrados permanentemente).

  • git add pone archivos en el staging area.

  • git commit guarda el contenido del staging area como un nuevo commit en el repositorio local.

  • Siempre escribe un mensaje de registro cuando hagas un commit con cambios.

Explorando el "History"
  • git diff despliega diferencias entre commits.

  • git checkout recupera versiones anteriores de archivos.

Ignorando cosas
  • El archivo .gitignore le dice a Git qué archivos ignorar.

Repositorios remotos en GitHub
  • Un repositorio Git local puede ser conectado a uno o más repositorios remotos.

  • Usa el protocolo HTTPS para conectarte a un repositorio remoto hasta que hayas aprendido como hacerlo con SSH.

  • git push copia los cambios desde el repositorio local a un repositorio remoto.

  • git pull copia los cambios desde un repositorio remoto a un repositorio local.

Trabajos en colaboración
  • git clone copia un repositorio remoto para crear un repositorio local llamado origin configurado automáticamente.

Conflictos
  • Los conflictos ocurren cuando dos o más personas cambian el mismo archivo(s) al mismo tiempo.

  • El sistema de control de versiones no permite a las personas sobreescribir ciegamente los cambios del otro, pero resalta los conflictos para poder resolverlos.

La ciencia abierta
  • Trabajo científico abierto es más útil y puede ser citado más que si no lo es.

Licencia
  • Las personas que usan la licencia GPL en su software tienen que asegurarse de que toda la estructura esté bajo ésta licencia; muchas otras licencias no requieren esto.

  • La familia de licencias Creative Commons permite a las personas adaptarse a varios requerimientos y restricciones de atribución, la creación de trabajo derivado, compartir el trabajo, y comercialización.

  • Personas sin conocimientos de leyes no deberían tratar de escribir nuevas licencias desde cero.

Ejemplo de Referencia o cita
  • Agrega un archivo CITATION al repositorio y explica cómo quieres que tu trabajo sea citado.

Hospedaje
  • Los proyectos pueden alojarse en servidores de la universidad, en dominios personales o públicas.

  • Las reglas con respecto a la propiedad intelectual y el almacenamiento de información confidencial se aplican sin importar dónde se alojan el código y los datos.

Usando Git desde RStudio
  • Crear un proyecto en RStudio

Cheatsheets de Git para Referencia Rápida

Glosario

changeset
Un grupo de cambios a uno o más ficheros que son o serán añadidos en un solo commit en un repositorio de control de versiones.
commit
Como verbo hacer un commit es la acción de registrar el estado de un conjunto de ficheros en un momento determinado (un changeset) en un repositorio de control de versiones. Como sustantivo, un commit es el resultado de esta acción, i.e. un changeset almacenado en un repositorio. Si un commit contiene cambios hechos a múltiples ficheros, todos los cambios son almacenados juntos.
conflicto
Un cambio hecho por un usuario de un sistema de control de versiones que es incompatible con cambios hechos por otros usuarios. Asistir a los usuarios a resolver conflictos es una de las funciones más importantes del control de versiones.
HTTP
Siglas de Hypertext Transfer Protocol, el protocolo utilizado para compartir páginas web y otros datos en la World Wide Web.
mezclar
(un repositorio): Reconciliar dos conjuntos de cambios en un repositorio.
protocolo
Un conjunto de reglas que definen cómo una computadora se comunica con otra. Entre los protocolos más utilizados en la Internet se encuentran HTTP y SSH.
remote
(de un repositorio) Un repositorio de control de versiones conectado con otro de forma tal que ambos pueden ser actualizados intercambiando commits.
repositorio
Un área de almacenamiento donde un sistema de control de versiones almacena la historia completa de commits de un proyecto, así como información sobre quién cambio qué, cuándo.
resolver
Eliminar los conflictos entre dos o más cambios incompatibles sobre un fichero o un conjunto de ficheros administrados por un sistema de control de versiones.
revisión
Un sinónimo de commit.
SHA-1
SHA-1 hashes es lo que Git utiliza para generar identificadores, incluyendo los de los commits. Para calcularlos, Git no solamente utiliza los cambios que forman parte de un commit, sino también sus metadatos (tales como fecha, autor, mensaje), incluyendo los identificadores de todos los commits hechos para cambios anteriores. Esto hace que los ID de commits de Git san virtualmente únicos. I.e., es ínfima la probabilidad de que un mismo ID se refiera a dos commits hechos de forma independiente, incluso si tuvieran los mismos cambios.
SSH
Abreviatura de Secure Shell, un protocolo utilizado para la comunicación de forma segura entre computadoras.
timestamp
Un registro de cuando ocurrió un evento específico.
control de versiones
Una herramienta para administrar los cambios hechos a un conjunto de ficheros. Cada conjunto de cambios crea un nuevocommit de los ficheros; el sistema de control de versiones permite a los usuarios recibir de manera fiable los commits precedentes, y ayuda a solventar cambios conflictivos hechos por diferentes usuarios.