Ciencia Social Abierta


Sesión 4: Control de versiones: Git & Github


Kevin Carrasco

Sociología FACSO UChile


Primer Semestre 2026

cienciasocialabierta.netlify.app

Contenidos


1. Resumen sesión anterior

2. Control de versiones

Ciencia abierta: ¿Alternativas?

  • Incentivos

  • Estándares

  • Herramientas

Herramientas para la reproducibilidad

Herramientas para la reproducibilidad

Elementos para la reproducibilidad

  • Carpeta de proyecto autocontenida y transferible

  • Escritura abierta:

    • texto simple/plano
    • citas
    • documentos dinámicos
  • Repositorio con datos y código de análisis abierto

  • Control de versiones

Contenidos


1. Resumen sesión anterior

2. Control de versiones

La escritura en texto simple (como Markdown o Quarto) permite implementar un sistema de control de versiones, además de herramientas de respaldo, colaboración y comunicación

El origen: Abriendo un sistema operativo

  • Linus Torvalds, 1991 (21 años)

  • Crea sistema operativo libre (Linux) y lo abre a la colaboración. Postea:

    • “I’m doing a (free) operating system (just a hobby, won’t be big and professional…)”
  • TED talk

Git

Git es un sistema de control de versiones

Git

  • Su propósito original era ayudar a grupos de desarrolladores a trabajar de forma colaborativa en grandes proyectos de software.

  • Git gestiona la evolución de un conjunto de archivos —llamado repositorio— de una manera lógica y altamente estructurada.

  • Similar a la función “Control de cambios” de Microsoft Word, pero mucho más avanzada.

Git

  • Es una especie de memoria local que registra:

    • quién hizo un cambio
    • cuándo lo hizo
    • qué hizo
  • Mantiene la información de todos los cambios en la historia de la carpeta

  • Se puede sincronizar con un repositorio remoto (ej. Github)

GitHub

GitHub es una plataforma de desarrollo de código orientada a la colaboración

GitHub

  • Espacio para tus proyectos basados ​​en Git en internet.

  • Similar a Dropbox, pero con mejor control de versiones.

  • El servidor remoto actúa como un canal de distribución o centro de intercambio para tu proyecto vinculado a Git.

  • Permite que otras personas vean tu trabajo, se sincronicen contigo e incluso realicen cambios.

GitHub

  • Incluso para proyectos personales, es buena idea guardar tu trabajo en una ubicación remota para tener un respaldo.

  • Si has subido tu trabajo a GitHub, es fácil obtener una copia nueva, corregir los cambios que solo existen localmente y seguir trabajando.

GitHub

  • Actualmente, Git / Github posee más de 100 millones de repositorios.

  • Mayor fuente de código en el mundo

  • Ha transitado desde el mundo de desarrollo de software hacia distintos ámbitos de trabajo colaborativo y abierto

  • Entorno de trabajo que favorece la ciencia abierta

  • En 2018 Microsoft compró GitHub por la cantidad de 7500 millones de dólares. Al inicio, el cambio de propietario generó preocupaciones y la salida de algunos proyectos de este sitio; sin embargo, no fueron representativos.

Funcionamiento

Git/github

  • Debemos instalar Git y vincular Git con VSCode. Esto es un proceso que solo se realiza una vez o una vez por computador.

  • Un repositorio puede ser público o privado (todos los visibles son públicos y clonable)

  • Cualquier repositorio remoto de Github que es clonado localmente quedará vinculado al repositorio remoto

  • Si se clona un repositorio de otra cuenta no se puede sincronizar luego con cambios locales (a menos que ese repositorio lo incluya como colaborador)

  • Git no es un registro de versiones de archivos específicos, sino de una carpeta completa

  • Guarda “fotos” de momentos específicos de la carpeta, y esta foto se saca mediante un commit

Commits

  • El commit es el procedimiento fundamental del control de versiones

  • Git no registra cualquier cambio que se “guarda”, sino los que se “comprometen” (commit).

  • En un commit

    • se seleccionan los archivos cuyo cambio se desea registrar (stage)
    • se registra lo que se está comprometiendo en el cambio (mensaje de commit)

¿Cuándo hacer un commit?

  • Según conveniencia

  • Sugerencias:

    • que sea un momento que requiera registro (momento de foto)

    • no para cambios menores

    • no esperar muchos cambios distintos que puedan hacer perder el sentido del commit

    • no esperar a tener todo el proyecto listo para hacer un commit

Algunos términos

Término Definición
Commit Acción de registro de los cambios aplicados en un repositorio.
Push Acción de subir los cambios locales a un repositorio remoto.
Pull Acción de descargar los cambios de un repositorio remoto al local.
Branch Una versión paralela del código contenido en el repositorio, pero que no afecta a la rama principal.
Clonar Para descargar una copia completa de los datos de un repositorio de GitHub.com, incluidas todas las versiones de cada archivo y carpeta.
Fork Un nuevo repositorio que comparte la configuración de visibilidad y código con el repositorio «ascendente» original.
Merge Para aplicar los cambios de una rama y en otra.
Pull request Una solicitud para combinar los cambios de una branch en otra.
Remote Un repositorio almacenado en GitHub, no en el equipo.

Trabajo colaborativo en GitHub

GitHub es una plataforma de desarrollo de código orientada a la colaboración

Colaborando en Github

  • Github permite que varias personas trabajen en el mismo proyecto

  • Para ello, quien administra el repositorio puede agregar colaboradores (que tengan cuenta en Github), quienes pueden hacer cambios y sincronizarlos con el repositorio remoto

  • Para ello ir a Settings > Collaboratos and teams

Colaborando en Github

  • Cada colaborador debe clonar el repositorio remoto en su computador, lo que genera una copia local vinculada al repositorio remoto
    • En VSC: Ctrl + Shift + P > Git: Clone > from Github, y buscar el repo

Colaboración mediante branch

  • Una branch es una versión paralela de los archivos contenidos en el repositorio, pero que no afecta a la rama principal.

  • Permite el trabajo paralelo en distintos archivos.

Conflicted branch

  • Cuando trabajamos en el mismo archivo -y los modificamos- podemos generar un conflicto de versiones de un archivo cuando otra persona quiera hacer modificaciones

¿Cómo evitar los conflictos de versiones?

  • Lo mejor es trabajar coordinadamente en tareas separadas (en momentos o archivos diferentes)

  • Mediante pull request, donde una persona a cargo decide qué modificaciones aceptar y cuando.

Ventajas

  • Visibilidad: Si alguien necesita ver tu trabajo o si quieres que pruebe tu código, puede acceder fácilmente a él desde GitHub.

  • Colaboración: Para analizar datos en conjunto. Usar GitHub permite que cada persona trabaje de forma independiente y luego envía su trabajo a revisión al resto del equipo.

  • Seguimiento: Si te interesa mucho el proyecto de otra persona, como un paquete de R, puedes seguir su desarrollo en GitHub.

Anécdota

Ingeniero chileno aportó código a helicóptero en Marte y recibió una insignia

Resumen

  • Git: programa para controlar versiones localmente
  • GitHub: plataforma para compartir proyectos basados en Git
  • Commit: procedimiento fundamental del control de versiones
  • Colaboración: mediante branches y pull request
  • Ventajas: visibilidad, colaboración, seguimiento



Ciencia Social Abierta


Kevin Carrasco

Sociología FACSO UChile


Primer Semestre 2026

cienciasocialabierta.netlify.app