Git es un sistema de control de versiones distribuido y de código abierto. Permite a desarrolladores y a profesionales de datos seguir el rastro del código, fusionar cambios y volver a versiones anteriores - AWS. Te permite sincronizar cambios con un servidor remoto. Por su flexibilidad y popularidad, Git se ha convertido en un estándar del sector, ya que es compatible con prácticamente todos los entornos de desarrollo, herramientas de línea de comandos y sistemas operativos.
¿Cómo funciona Git?
Git guarda tus archivos y su historial de desarrollo en un repositorio local. Cada vez que guardas cambios, Git crea un commit. Un commit es una instantánea del estado actual de los archivos. Estos commits se encadenan entre sí formando un grafo de historial de desarrollo, como se muestra más abajo. Nos permite volver a un commit anterior, comparar cambios y ver el progreso del proyecto - Azure DevOps. Los commits se identifican con un hash único que se usa para comparar y revertir cambios.
Un grafo del historial de desarrollo
Ramas
Las ramas son copias del código fuente que trabajan en paralelo a la versión principal. Para guardar los cambios realizados, fusiona la rama con la versión principal. Esta funcionalidad facilita el trabajo en equipo sin conflictos. Cada persona tiene su tarea y, usando ramas, puede desarrollar una nueva funcionalidad sin interferir con el resto del equipo. Cuando la tarea está lista, puedes fusionar las nuevas funciones con la versión principal (rama master). Si quieres aprender a clonar una rama, echa un vistazo a este tutorial sobre Git Clone Branch.
Añadir una nueva funcionalidad al repositorio
Commits
En Git, los archivos pueden estar en tres estados: modified, staged y commit. Cuando haces cambios en un archivo, se guardan en tu directorio local y aún no forman parte del historial de desarrollo de Git. Para crear un commit, primero debes preparar (stage) los archivos cambiados. Puedes añadir o quitar cambios del área de preparación y después empaquetarlos en un commit con un mensaje que describa lo que has hecho.
Tres estados de los archivos en Git
¿Cuáles son las ventajas de Git?
Seguimiento de cambios: permite ver los cambios históricos. El historial de desarrollo facilita identificar y corregir errores.
Integración con IDE: por su popularidad, Git se integra en todos los entornos de desarrollo, como VSCode y JupyterLab.
Colaboración en equipo: un equipo puede ver su progreso y, usando ramas, trabajar de forma individual en una tarea y fusionar los cambios con la versión principal. Las pull requests, la resolución de conflictos de fusión y las revisiones de código fomentan la colaboración.
VCS distribuido: en un sistema distribuido no hay un almacenamiento centralizado. Hay múltiples copias de seguridad del mismo proyecto. Este enfoque permite trabajar sin conexión y hacer commits.
Git para proyectos de ciencia de datos
Git ofrece control de versiones para scripts, métricas, datos y modelos. Con la extensión git-lfs, puedes almacenar y versionar grandes bases de datos y modelos de machine learning. En un proyecto típico de ciencia de datos, tendrás un cuaderno de Jupyter, dataset, modelo, metadatos y métricas del modelo. Los metadatos incluyen archivos con información sobre el modelo de machine learning, las features, los parámetros del modelo y archivos de automatización. Todo ello es clave para monitorizar el progreso de las aplicaciones de IA y resolver incidencias.
Registrar experimentos de ciencia de datos ayuda a deshacer cambios accidentales, seleccionar el mejor experimento según la métrica de rendimiento y colaborar con el equipo. El diagrama muestra cómo los cambios en datos o código afectan a los metadatos y a la salida del modelo. Seguir estos cambios también ayuda a que otros miembros del equipo propongan mejores soluciones. Aprende todo sobre Git en el último blog de Summer Worsley.
Git en un proyecto de ciencia de datos
Colaboración con GitHub
GitHub es una plataforma en la nube para desarrollo de software. Se usa para guardar archivos, seguir cambios y colaborar en proyectos. En los últimos años, GitHub se ha convertido en la plataforma social más popular para comunidades de desarrollo. Puedes contribuir a proyectos open-source y reportes de errores, debatir nuevas iniciativas y descubrir herramientas.
Las personas de datos y los ingenieros de machine learning siguen el camino del desarrollo de software e integran su flujo de trabajo con GitHub. Así comparten su investigación, permiten la contribución de la comunidad y colaboran con equipos de datos. En la plataforma encontrarás todo tipo de proyectos, guías, tutoriales y recursos de ciencia de datos y machine learning. Para estudiantes, también es una oportunidad de ganar experiencia y acabar consiguiendo un empleo en una empresa de prestigio.
Portfolio
La mayoría de recruiters técnicos te pedirán proyectos de portfolio o tu perfil de GitHub. Esto les ayuda a determinar si encajas en la empresa. Es muy recomendable crear un perfil de GitHub y mantenerlo al día. Los hiring managers buscan perfiles con experiencia en desarrollo de software y que contribuyan al open source. Poder analizar el portfolio de GitHub también les ayuda a preparar preguntas para entrevistas técnicas.
GitHub permite a los profesionales de datos mostrar sus proyectos, y puede contar como experiencia en tu currículum. Exhibir proyectos de portfolio también abre la puerta a colaborar, lanzar una startup o hacer investigación.
Proyectos de portfolio
Funcionalidades
GitHub ofrece muchas otras funciones tan importantes como mostrar tu portfolio. Conviene conocerlas para incorporarlas a tus proyectos de ciencia de datos.
Open source: GitHub proporciona un ecosistema completo para proyectos de código abierto. Puedes patrocinar a mantenedores, contribuir, usar herramientas open source en tu proyecto y dar visibilidad a tu trabajo.
Colaboración comunitaria: GitHub se ha convertido en una plataforma comunitaria donde debatir incidencias, peticiones de funcionalidades y contribuciones de código y documentación.
Explore: la pestaña GitHub Explore te ayuda a descubrir proyectos, herramientas en tendencia y eventos de desarrollo.
GitHub Gists: puedes compartir fragmentos de código o insertarlos en un blog o web.
GitHub CLI: te permite hacer merge requests, revisar código, consultar issues y monitorizar el progreso desde la línea de comandos.
Almacenamiento gratuito: repositorios privados y públicos ilimitados.
Alojamiento web: puedes publicar tu web de portfolio o documentación. GitHub Pages facilita crear y desplegar sitios.
Codespace: un entorno de desarrollo en la nube integrado con tu repositorio de GitHub.
Project: una herramienta flexible y personalizable para planificar y hacer seguimiento del trabajo en GitHub.
Automatización: GitHub Actions automatiza el flujo de desarrollo: build, test, publish, release y despliegue.
Sponsor: puedes apoyar tu proyecto o desarrolladores open source favoritos con una cuota mensual o un pago único. También permite usar plataformas de pago de terceros como ko-fi.
Comandos básicos
Antes de ponernos con la gestión de proyectos de ciencia de datos, veamos los comandos de Git más comunes que usarás en cada proyecto. Entre los básicos están inicializar el repositorio, guardar cambios, consultar logs, subir cambios al remoto y fusionar.
git init crea un repositorio de Git en un directorio local.
git clone <dirección-repo-remoto>: copia el repositorio completo desde un servidor remoto al directorio local. También sirve para copiar repositorios locales.
git add <archivo.txt>: añade uno o varios archivos y carpetas al área de preparación.
git commit –m “Mensaje”: crea una instantánea de los cambios y la guarda en el repositorio.
git config sirve para configurar opciones de usuario como email, nombre de usuario y formato de archivos.
git status muestra la lista de archivos cambiados o pendientes de preparar y confirmar.
git push <nombre-remoto> <nombre-rama>: envía los commits locales a la rama remota del repositorio.
git checkout -b <nombre-rama>: crea una rama nueva y cambia a ella.
git remote –v: muestra todos los repositorios remotos.
git remote add <nombre-remoto> <host-o-URL-remoto>: añade un servidor remoto al repositorio local.
git branch –d <nombre-rama>: elimina la rama.
git pull fusiona los commits desde un repositorio remoto al directorio local.
git merge <nombre-rama>: tras resolver los conflictos, fusiona la rama seleccionada con la rama actual.
git log muestra el listado detallado de commits de la rama actual.
Desarrollo completo con GitHub
Si quieres aprender más comandos, consulta nuestra chuleta de Git.
Primeros pasos
En esta sección usaremos Git para seguir un proyecto de ciencia de datos y GitHub como servidor remoto. Veremos cómo instalar Git, crear y clonar un repositorio desde GitHub, ejecutar experimentos de machine learning y subir cambios (notebook, modelo, datos) a GitHub usando Windows PowerShell 7.
Instalar Git
Git es compatible con todos los sistemas operativos. Puedes instalarlo con herramientas de línea de comandos o descargando e instalando el instalador.
Linux
En sistemas Debian/Ubuntu usa `apt-get install git`, y si usas otra distribución Linux, consulta la lista completa de comandos de instalación aquí.
macOS
Si tienes homebrew instalado, usa este comando para descargar e instalar Git: `brew install git`. También puedes descargar el instalador binario y ejecutarlo.
Windows
Instalar Git en Windows es muy sencillo. Ve a la página de descarga, elige tu versión de Windows y descarga e instala. Si tienes la herramienta winget, puedes instalarlo escribiendo winget install --id Git.Git -e --source winget en PowerShell.
Tras instalar Git, asegúrate de configurar tu nombre de usuario y email. Esta información se usa para firmar los commits.
Para más información detallada sobre cómo instalar Git, haz clic aquí.
Inicializar el proyecto
Si tienes cuenta en GitHub, haz clic en el botón + y selecciona nuevo repositorio. Después, escribe el nombre y añade una breve descripción. Se creará un repositorio público vacío.
Creación del proyecto
Hay varias formas de clonar repositorios remotos al directorio local, y GitHub ofrece una guía detallada para clonar, añadir el remoto e inicializar un proyecto con Git.
Clonado en GitHub
Podemos clonar el repositorio proporcionando el enlace HTTPS. Asegúrate de estar en el directorio de trabajo usando el símbolo del sistema o PowerShell.
git clone https://github.com/kingabzpro/DataCamp-Git.git
>>> Cloning into 'DataCamp-Git'...
>>> warning: You appear to have cloned an empty repository.
cd .\DataCamp-Git\Con la tecnología de
O
Crea un directorio nuevo llamado “DataCamp-Git” e inicializa Git con un comando simple. Después, añade la conexión con el repositorio remoto para sincronizar tu trabajo con GitHub.
mkdir DataCamp-Git
cd .\DataCamp-Git
git init
>>> Initialized empty Git repository in C:/Repository/GitHub/DataCamp-Git/.git/
git remote add origin https://github.com/kingabzpro/DataCamp-Git.gitCon la tecnología de
O
Si ya tienes un proyecto en un directorio, simplemente inicializa Git con `git init` y añade el remoto de GitHub, como arriba.
Commit sencillo
Antes de añadir archivos al repositorio, asegúrate de estar en el directorio local correcto.
Empezaremos creando un README con el encabezado DataCamp-Git. Luego lo añadiremos al área de preparación con `git add`.
Git status muestra que estamos en la rama main y que el archivo `README.md` está preparado y listo para confirmar.
git status
>>> On branch main
>>> No commits yet
>>> Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.mdCon la tecnología de
Para crear nuestro primer commit, usaremos `git commit` con un mensaje. Como ves, el primer commit se ha añadido con el hash ed9c886.
git commit -m "first commit"
>>> [main (root-commit) ed9c886] first commit
>>> 1 file changed, 1 insertion(+)
>>> create mode 100644 README.mdCon la tecnología de
Para guardar el archivo del modelo, añadimos una celda de código nueva en el cuaderno de Jupyter del proyecto. El script creará un directorio llamado “model” y guardará los modelos LSTM y GRU.
!mkdir -p model
model_lstm.save('model/LSTM')
model_gru.save('model/GRU')Con la tecnología de
Como vemos, el repositorio Git tiene una carpeta data con archivos CSV y la carpeta model con los pesos y metadatos del modelo.
Ahora prepararemos todos los archivos. Puedes añadir cualquier directorio, archivo o datos tras el comando inicial.
Para sincronizar con el repositorio remoto en GitHub necesitas el nombre del remoto y el de la rama `git push <nombre-remoto> <nombre-rama>`. Si solo tienes un remoto y una rama, `git push` a secas funcionará.
Tras el `git push`, se abrirá una ventana para pedir credenciales: añade tu usuario y contraseña de GitHub. También puedes generar personal access tokens y usarlos en lugar de la contraseña. Aprende más en el tutorial de Git Push y Pull.
git push
>>> Enumerating objects: 21, done.
>>> Counting objects: 100% (21/21), done.
>>> Delta compression using up to 4 threads
>>> Compressing objects: 100% (19/19), done.
>>> Writing objects: 100% (21/21), 1.83 MiB | 1.59 MiB/s, done.
>>> Total 21 (delta 2), reused 0 (delta 0), pack-reused 0
>>> remote: Resolving deltas: 100% (2/2), done.
>>> To https://github.com/kingabzpro/DataCamp-Git.git
>>> * [new branch] main -> mainCon la tecnología de
Vamos a comprobar en nuestro repositorio de GitHub kingabzpro/DataCamp-Git si hemos subido los cambios correctamente. El repositorio tiene todos los archivos, datos y modelos.
Push remoto a GitHub
Ramas en Git
Se recomienda trabajar con ramas: por ejemplo, si vas a trabajar en la documentación, crea una rama de documentación con git checkout o git branch. Haz cambios en el README y, cuando los tengas listos, fusiona la rama con la base.
En nuestro caso, hemos creado y cambiado a una rama nueva llamada readme.
Vamos a editar el README añadiendo una descripción del proyecto y enlazando el workspace de RNN en DataCamp y el tutorial. Después prepararemos los cambios y guardaremos una instantánea con un mensaje.
git add README.md
git commit -m "project description and links to blog"
>>> [readme f3b8b9b] project description and links to blog
>>> 1 file changed, 8 insertions(+)Con la tecnología de
El repositorio remoto no tiene una rama readme. Para crearla y subir cambios, usaremos “readme:readme”. La salida muestra que se han creado ramas nuevas y que las ramas `readme` local y remota están sincronizadas.
git push origin readme:readme
>>> remote: Resolving deltas: 100% (1/1), completed with 1 local object.
>>> remote: Create a pull request for 'readme' on GitHub by visiting:
>>> remote: https://github.com/kingabzpro/DataCamp-Git/pull/new/readme
>>> remote:
To https://github.com/kingabzpro/DataCamp-Git.git
>>> * [new branch] readme -> readmeCon la tecnología de
Puedes ver que hemos subido correctamente la rama local a GitHub con la versión modificada del archivo README.md.
Rama readme en GitHub
Pull request
Esta funcionalidad es habitual en organizaciones. Por ejemplo, una persona desarrolladora ha trabajado en una nueva funcionalidad y quiere fusionar los cambios en la rama principal remota. Crearemos una pull request con la interfaz de GitHub haciendo clic en el botón Pull request. Luego, selecciona la rama readme que quieres fusionar con la base (main). Puedes escribir una explicación detallada de lo que has añadido y hacer clic en el botón de pull request.
Pull request de readme a main
La persona mantenedora del repositorio comparará tus cambios y los fusionará cuando pasen todas las pruebas. En nuestro caso tú eres quien mantiene el repo, así que haz clic en merge para mezclar los cambios con la rama principal.
Fusionar pull request en GitHub
Enhorabuena, hemos creado una pull request y la hemos fusionado con la rama principal. Puedes ver los cambios en la rama main aquí.
Si quieres ver todos los cambios de tu repositorio, escribe `git log` y verás el historial del proyecto. Registrar cambios en proyectos de ciencia de datos es importante, y Git nos ayuda a seguirlos, incluso con datasets grandes.
Histórico de logs de Git
Reflexiones finales
Las prácticas GitOps son clave en el desarrollo de aplicaciones de datos. Se han convertido en una habilidad esencial para todo tipo de trabajos de TI; incluso investigadores académicos las usan para compartir código experimental con una audiencia más amplia. Por su parte, GitHub juega un papel fundamental al impulsar proyectos open source ofreciendo a todos un ecosistema de desarrollo gratuito.
En este tutorial hemos visto qué son Git y GitHub y por qué son importantes para proyectos de ciencia de datos. También te hemos presentado los comandos básicos de Git y hemos practicado cómo seguir cambios en datos, modelos y código. Si te interesa seguir aprendiendo, haz el curso Introduction to Git en DataCamp. También puedes conocer la importancia de la certificación GitHub Foundations y cómo puede impulsar tu carrera profesional.
Preguntas frecuentes sobre Git
¿Qué es Git?⌄
Un sistema de control de versiones distribuido y de código abierto. Permite a desarrolladores almacenar, versionar y visualizar cambios en un proyecto de desarrollo. Favorece un trabajo en equipo flexible y un flujo de trabajo optimizado.
¿Qué significan las siglas Git?⌄
No es un acrónimo. Según su creador, Linus Torvalds, “Git puede significar cualquier cosa, depende de tu estado de ánimo”. Es una combinación de tres letras aleatorias que no usa ningún comando de UNIX.
¿Cómo clono un repositorio de Git?⌄
Basta con escribir `git clone <dirección del repositorio remoto>` en una terminal. Puedes clonar repositorios locales y remotos. Admite los protocolos SSH y HTTPS.
¿Cómo borrar una rama en Git?⌄
Para borrar una rama local, usa `git branch -d <nombre_rama_local>`, y para borrar una rama remota, usa `git push <nombre_remoto> -d <nombre_rama_remota>`.
¿Cómo cambio de rama en Git?⌄
Cambia a una rama existente con `git checkout <nombre_rama>` o crea y cambia a una nueva con `git checkout -b <nombre_rama>`.
¿Cómo instalo Git?⌄
En sistemas Linux usa `apt-get install git`, y para otros sistemas operativos visita git-scm.com.
¿Git es gratis?⌄
Sí, es gratuito y de código abierto bajo la licencia GPL-2.0.
¿Qué es Git Bash?⌄
Es una aplicación para Microsoft Windows que proporciona utilidades y experiencia de shell basadas en Unix.
¿Cómo creo una rama nueva en Git?⌄
Usa el comando `git branch <nueva-rama> <rama-base>` en la terminal. Para crear y cambiar a una nueva rama, usa `git checkout -b <nombre_rama>`.
¿Qué hace git pull?⌄
Actualiza la versión local de un repositorio desde un servidor remoto: copia todos los cambios del repositorio remoto y los fusiona con tu directorio local. A menudo tendrás que resolver conflictos de fusión.
¿Cómo hago fork de un repositorio en Git?⌄
Hacer fork en GitHub es crear una copia de un repositorio en tu cuenta de GitHub desde otra cuenta. Suele hacerse para contribuir a la comunidad o para trabajo en equipo.
¿Cómo renombro una rama en Git?⌄
Para el repositorio local es sencillo: usa `git branch -m <nombre_antiguo> <nombre_nuevo>`. Para renombrar una rama remota, primero elimina la antigua con `git push origin --delete <nombre_antiguo>` y luego sube la nueva `git push -u origin <nombre_nuevo>`.
¿Cómo borro un repositorio de Git?⌄
Puedes borrar la carpeta local o eliminar la carpeta .git con `rm -fr .git`. En GitHub, ve a los ajustes del repositorio y al final de la página verás la opción de eliminar.
¿Cómo instalo Git en Windows?⌄
Descarga el instalador para Windows desde el sitio y ejecútalo; instalará Git Bash, Git CMD y Git GUI.
¿Cómo deshacer un commit en Git?⌄
Usa `git revert <commit sha>`, que requiere el hash único de un commit anterior. También puedes usar `git revert HEAD~2`, que revierte dos commits por detrás de HEAD.
¿Qué es Git?
Git es un sistema de control de versiones distribuido y de código abierto. Permite a desarrolladores y a profesionales de datos seguir el rastro del código, fusionar cambios y volver a versiones anteriores - AWS. Te permite sincronizar cambios con un servidor remoto. Por su flexibilidad y popularidad, Git se ha convertido en un estándar del sector, ya que es compatible con prácticamente todos los entornos de desarrollo, herramientas de línea de comandos y sistemas operativos.
¿Cómo funciona Git?
Git guarda tus archivos y su historial de desarrollo en un repositorio local. Cada vez que guardas cambios, Git crea un commit. Un commit es una instantánea del estado actual de los archivos. Estos commits se encadenan entre sí formando un grafo de historial de desarrollo, como se muestra más abajo. Nos permite volver a un commit anterior, comparar cambios y ver el progreso del proyecto - Azure DevOps. Los commits se identifican con un hash único que se usa para comparar y revertir cambios.
Un grafo del historial de desarrollo
Ramas
Las ramas son copias del código fuente que trabajan en paralelo a la versión principal. Para guardar los cambios realizados, fusiona la rama con la versión principal. Esta funcionalidad facilita el trabajo en equipo sin conflictos. Cada persona tiene su tarea y, usando ramas, puede desarrollar una nueva funcionalidad sin interferir con el resto del equipo. Cuando la tarea está lista, puedes fusionar las nuevas funciones con la versión principal (rama master). Si quieres aprender a clonar una rama, echa un vistazo a este tutorial sobre Git Clone Branch.
Añadir una nueva funcionalidad al repositorio
Commits
En Git, los archivos pueden estar en tres estados: modified, staged y commit. Cuando haces cambios en un archivo, se guardan en tu directorio local y aún no forman parte del historial de desarrollo de Git. Para crear un commit, primero debes preparar (stage) los archivos cambiados. Puedes añadir o quitar cambios del área de preparación y después empaquetarlos en un commit con un mensaje que describa lo que has hecho.
Tres estados de los archivos en Git
¿Cuáles son las ventajas de Git?
Git para proyectos de ciencia de datos
Git ofrece control de versiones para scripts, métricas, datos y modelos. Con la extensión git-lfs, puedes almacenar y versionar grandes bases de datos y modelos de machine learning. En un proyecto típico de ciencia de datos, tendrás un cuaderno de Jupyter, dataset, modelo, metadatos y métricas del modelo. Los metadatos incluyen archivos con información sobre el modelo de machine learning, las features, los parámetros del modelo y archivos de automatización. Todo ello es clave para monitorizar el progreso de las aplicaciones de IA y resolver incidencias.
Registrar experimentos de ciencia de datos ayuda a deshacer cambios accidentales, seleccionar el mejor experimento según la métrica de rendimiento y colaborar con el equipo. El diagrama muestra cómo los cambios en datos o código afectan a los metadatos y a la salida del modelo. Seguir estos cambios también ayuda a que otros miembros del equipo propongan mejores soluciones. Aprende todo sobre Git en el último blog de Summer Worsley.
Git en un proyecto de ciencia de datos
Colaboración con GitHub
GitHub es una plataforma en la nube para desarrollo de software. Se usa para guardar archivos, seguir cambios y colaborar en proyectos. En los últimos años, GitHub se ha convertido en la plataforma social más popular para comunidades de desarrollo. Puedes contribuir a proyectos open-source y reportes de errores, debatir nuevas iniciativas y descubrir herramientas.
Las personas de datos y los ingenieros de machine learning siguen el camino del desarrollo de software e integran su flujo de trabajo con GitHub. Así comparten su investigación, permiten la contribución de la comunidad y colaboran con equipos de datos. En la plataforma encontrarás todo tipo de proyectos, guías, tutoriales y recursos de ciencia de datos y machine learning. Para estudiantes, también es una oportunidad de ganar experiencia y acabar consiguiendo un empleo en una empresa de prestigio.
Portfolio
La mayoría de recruiters técnicos te pedirán proyectos de portfolio o tu perfil de GitHub. Esto les ayuda a determinar si encajas en la empresa. Es muy recomendable crear un perfil de GitHub y mantenerlo al día. Los hiring managers buscan perfiles con experiencia en desarrollo de software y que contribuyan al open source. Poder analizar el portfolio de GitHub también les ayuda a preparar preguntas para entrevistas técnicas.
Perfil de GitHub
GitHub permite a los profesionales de datos mostrar sus proyectos, y puede contar como experiencia en tu currículum. Exhibir proyectos de portfolio también abre la puerta a colaborar, lanzar una startup o hacer investigación.
Proyectos de portfolio
Funcionalidades
GitHub ofrece muchas otras funciones tan importantes como mostrar tu portfolio. Conviene conocerlas para incorporarlas a tus proyectos de ciencia de datos.
Comandos básicos
Antes de ponernos con la gestión de proyectos de ciencia de datos, veamos los comandos de Git más comunes que usarás en cada proyecto. Entre los básicos están inicializar el repositorio, guardar cambios, consultar logs, subir cambios al remoto y fusionar.
git initcrea un repositorio de Git en un directorio local.git clone <dirección-repo-remoto>: copia el repositorio completo desde un servidor remoto al directorio local. También sirve para copiar repositorios locales.git add <archivo.txt>: añade uno o varios archivos y carpetas al área de preparación.git commit –m “Mensaje”: crea una instantánea de los cambios y la guarda en el repositorio.git configsirve para configurar opciones de usuario como email, nombre de usuario y formato de archivos.git statusmuestra la lista de archivos cambiados o pendientes de preparar y confirmar.git push <nombre-remoto> <nombre-rama>: envía los commits locales a la rama remota del repositorio.git checkout -b <nombre-rama>: crea una rama nueva y cambia a ella.git remote –v: muestra todos los repositorios remotos.git remote add <nombre-remoto> <host-o-URL-remoto>: añade un servidor remoto al repositorio local.git branch –d <nombre-rama>: elimina la rama.git pull fusionalos commits desde un repositorio remoto al directorio local.git merge <nombre-rama>: tras resolver los conflictos, fusiona la rama seleccionada con la rama actual.git logmuestra el listado detallado de commits de la rama actual.Desarrollo completo con GitHub
Si quieres aprender más comandos, consulta nuestra chuleta de Git.
Primeros pasos
En esta sección usaremos Git para seguir un proyecto de ciencia de datos y GitHub como servidor remoto. Veremos cómo instalar Git, crear y clonar un repositorio desde GitHub, ejecutar experimentos de machine learning y subir cambios (notebook, modelo, datos) a GitHub usando Windows PowerShell 7.
Instalar Git
Git es compatible con todos los sistemas operativos. Puedes instalarlo con herramientas de línea de comandos o descargando e instalando el instalador.
Linux
En sistemas Debian/Ubuntu usa `apt-get install git`, y si usas otra distribución Linux, consulta la lista completa de comandos de instalación aquí.
macOS
Si tienes homebrew instalado, usa este comando para descargar e instalar Git: `brew install git`. También puedes descargar el instalador binario y ejecutarlo.
Windows
Instalar Git en Windows es muy sencillo. Ve a la página de descarga, elige tu versión de Windows y descarga e instala. Si tienes la herramienta winget, puedes instalarlo escribiendo
winget install --id Git.Git -e --source wingeten PowerShell.Tras instalar Git, asegúrate de configurar tu nombre de usuario y email. Esta información se usa para firmar los commits.
Para más información detallada sobre cómo instalar Git, haz clic aquí.
Inicializar el proyecto
Si tienes cuenta en GitHub, haz clic en el botón + y selecciona nuevo repositorio. Después, escribe el nombre y añade una breve descripción. Se creará un repositorio público vacío.
Creación del proyecto
Hay varias formas de clonar repositorios remotos al directorio local, y GitHub ofrece una guía detallada para clonar, añadir el remoto e inicializar un proyecto con Git.
Clonado en GitHub
Podemos clonar el repositorio proporcionando el enlace HTTPS. Asegúrate de estar en el directorio de trabajo usando el símbolo del sistema o PowerShell.
O
Crea un directorio nuevo llamado “DataCamp-Git” e inicializa Git con un comando simple. Después, añade la conexión con el repositorio remoto para sincronizar tu trabajo con GitHub.
O
Si ya tienes un proyecto en un directorio, simplemente inicializa Git con `git init` y añade el remoto de GitHub, como arriba.
Commit sencillo
Antes de añadir archivos al repositorio, asegúrate de estar en el directorio local correcto.
Empezaremos creando un README con el encabezado DataCamp-Git. Luego lo añadiremos al área de preparación con `git add`.
Git status muestra que estamos en la rama main y que el archivo `README.md` está preparado y listo para confirmar.
Para crear nuestro primer commit, usaremos `git commit` con un mensaje. Como ves, el primer commit se ha añadido con el hash ed9c886.
Añadir archivos del proyecto
Usaremos el workspace de DataCamp MasterCard Stock Price with LSTM and GRU y descargaremos los archivos. El autor ha preprocesado los datos y entrenado series temporales con modelos LSTM y GRU. Aprende más leyendo el tutorial de redes neuronales recurrentes (RNN).
Para guardar el archivo del modelo, añadimos una celda de código nueva en el cuaderno de Jupyter del proyecto. El script creará un directorio llamado “model” y guardará los modelos LSTM y GRU.
Como vemos, el repositorio Git tiene una carpeta data con archivos CSV y la carpeta model con los pesos y metadatos del modelo.
Ahora prepararemos todos los archivos. Puedes añadir cualquier directorio, archivo o datos tras el comando inicial.
O
Si quieres añadir todo al área de preparación, usa el punto.
Commit y push
Haremos commit de todos los cambios con un mensaje sencillo; la salida muestra todos los archivos nuevos en modo create.
Para sincronizar con el repositorio remoto en GitHub necesitas el nombre del remoto y el de la rama `git push <nombre-remoto> <nombre-rama>`. Si solo tienes un remoto y una rama, `git push` a secas funcionará.
Tras el `git push`, se abrirá una ventana para pedir credenciales: añade tu usuario y contraseña de GitHub. También puedes generar personal access tokens y usarlos en lugar de la contraseña. Aprende más en el tutorial de Git Push y Pull.
Vamos a comprobar en nuestro repositorio de GitHub kingabzpro/DataCamp-Git si hemos subido los cambios correctamente. El repositorio tiene todos los archivos, datos y modelos.
Push remoto a GitHub
Ramas en Git
Se recomienda trabajar con ramas: por ejemplo, si vas a trabajar en la documentación, crea una rama de documentación con
git checkoutogit branch. Haz cambios en el README y, cuando los tengas listos, fusiona la rama con la base.En nuestro caso, hemos creado y cambiado a una rama nueva llamada
readme.Vamos a editar el README añadiendo una descripción del proyecto y enlazando el workspace de RNN en DataCamp y el tutorial. Después prepararemos los cambios y guardaremos una instantánea con un mensaje.
El repositorio remoto no tiene una rama readme. Para crearla y subir cambios, usaremos “readme:readme”. La salida muestra que se han creado ramas nuevas y que las ramas `readme` local y remota están sincronizadas.
Puedes ver que hemos subido correctamente la rama local a GitHub con la versión modificada del archivo README.md.
Rama readme en GitHub
Pull request
Esta funcionalidad es habitual en organizaciones. Por ejemplo, una persona desarrolladora ha trabajado en una nueva funcionalidad y quiere fusionar los cambios en la rama principal remota. Crearemos una pull request con la interfaz de GitHub haciendo clic en el botón Pull request. Luego, selecciona la rama readme que quieres fusionar con la base (main). Puedes escribir una explicación detallada de lo que has añadido y hacer clic en el botón de pull request.
Pull request de readme a main
La persona mantenedora del repositorio comparará tus cambios y los fusionará cuando pasen todas las pruebas. En nuestro caso tú eres quien mantiene el repo, así que haz clic en merge para mezclar los cambios con la rama principal.
Fusionar pull request en GitHub
Enhorabuena, hemos creado una pull request y la hemos fusionado con la rama principal. Puedes ver los cambios en la rama main aquí.
Si quieres ver todos los cambios de tu repositorio, escribe `git log` y verás el historial del proyecto. Registrar cambios en proyectos de ciencia de datos es importante, y Git nos ayuda a seguirlos, incluso con datasets grandes.
Histórico de logs de Git
Reflexiones finales
Las prácticas GitOps son clave en el desarrollo de aplicaciones de datos. Se han convertido en una habilidad esencial para todo tipo de trabajos de TI; incluso investigadores académicos las usan para compartir código experimental con una audiencia más amplia. Por su parte, GitHub juega un papel fundamental al impulsar proyectos open source ofreciendo a todos un ecosistema de desarrollo gratuito.
En este tutorial hemos visto qué son Git y GitHub y por qué son importantes para proyectos de ciencia de datos. También te hemos presentado los comandos básicos de Git y hemos practicado cómo seguir cambios en datos, modelos y código. Si te interesa seguir aprendiendo, haz el curso Introduction to Git en DataCamp. También puedes conocer la importancia de la certificación GitHub Foundations y cómo puede impulsar tu carrera profesional.