La siguiente es una guía estructurada para trabajar con Python + Git/GitHub + VSCode desde la terminal, paso a paso:

Guía Completa: Python + Git/GitHub + VSCode (Terminal)

1. Instalación de Herramientas

  1. Python:
    • Descarga desde python.org.

    • Instala marcando “Add Python to PATH”.

    • Verifica instalación:

      python --version
  2. Git:
    • Descarga desde git-scm.com.

    • Instala con opciones predeterminadas.

    • Verifica instalación:

      git --version
  3. VSCode:

2. Configuración Inicial de Git (¡Obligatorio antes de empezar!)

git config --global user.name "Tu Nombre"
git config --global user.email "tu_email@example.com"
git config --global core.autocrlf true  # Para Windows (evita problemas de line endings)
git config --global credential.helper store  # Guarda credenciales

Verifica la configuración:

git config --global --list

3. Crear Cuenta en GitHub

  1. Regístrate en github.com.

  2. Configura SSH Key (opcional pero recomendado):

    ssh-keygen -t ed25519 -C "tu_email@example.com"
    • Copia la clave pública (cat ~/.ssh/id_ed25519.pub) y pégala en GitHub > Settings > SSH and GPG keys.

4. Crear un Repositorio en GitHub

  1. Haz clic en “+ New repository”.
  2. Elige nombre (ej: MiProyecto), visibilidad (Public/Private), y no inicialices con README.
  3. Copia la URL del repositorio (HTTPS o SSH).

5. Estructura Local del Proyecto

mkdir C:\Proyectos\MiProyecto
cd C:\Proyectos\MiProyecto

6. Entorno Virtual (Virtualenv)

python -m venv venv
.\venv\Scripts\activate  # Actívalo (verás "(venv)" en la terminal)

7. Archivos Esenciales

  1. .gitignore (para excluir archivos innecesarios):

    echo "venv/" > .gitignore
    echo "__pycache__/" >> .gitignore
  2. requirements.txt (dependencias):

    pip freeze > requirements.txt

8. Vinculación con GitHub

git init
git add .
git commit -m "Primer commit: estructura inicial"
git branch -M main  # Asegura que la rama se llame 'main'
git remote add origin https://github.com/tuusuario/MiProyecto.git
git push -u origin main

9. Clonar un Repositorio Existente (Para otro equipo)

cd C:\Proyectos
git clone https://github.com/tuusuario/MiProyecto.git
cd MiProyecto
python -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt

10. Flujo de Trabajo Diario

  1. Sincronizar cambios antes de empezar:

    git pull origin main
  2. Subir cambios nuevos:

    git add .
    git commit -m "Descripción clara de los cambios"
    git push origin main
  3. Resolver conflictos (si git pull los muestra):

    • Edita los archivos conflictivos.

    • Luego:

      git add .
      git commit -m "Resuelve conflictos"
      git push

11. Buenas Prácticas

  • Ramificación (para features/fixes):

    git checkout -b nombre-rama  # Crea y cambia a una rama nueva
    git checkout main           # Vuelve a la rama principal
    git merge nombre-rama       # Fusiona la rama
  • Actualizar requirements.txt tras instalar paquetes:

    pip freeze > requirements.txt
    git add requirements.txt
    git commit -m "Actualiza dependencias"
    git push

Diagrama de Flujo Resumen

Instalar Herramientas → Configurar Git → Crear Repo en GitHub → 
Inicializar Proyecto Local → Entorno Virtual → Archivos Clave → 
Primer Commit/Push → Trabajo Diario (Pull → Code → Commit → Push)
library(DiagrammeR)

grViz("
digraph flujo_inicial {
  graph [layout = dot, rankdir = LR]

  node [shape = rectangle, style = filled, fillcolor = lightblue]

  A [label = 'Instalar\nPython, VSCode y Git']
  B [label = 'Configurar Git\n(nombre y correo)']
  C [label = 'Crear repositorio\nGitHub']
  D [label = 'Inicializar Proyecto\nLocal']
  E [label = 'Crear Entorno\nVirtual']
  F [label = 'Archivos Clave:\nREADME, .gitignore,\nrequirements.txt']
  G [label = 'Primer Commit\n& Push']
  H [label = 'Trabajo Diario:\nPull → Code → Commit → Push']

  A -> B -> C -> D -> E -> F -> G -> H
}
")