A continuación una brevísima guía de cómo y cuándo cada uno de estos comandos te puede servir para llevar una vida tranquila en git, principalmente si vas comenzando.
Una vez por computadora
hay que configurar git para que sepa quién hace los cambios en el repositorio
git config --global user.name "Tu Nombre" git config --global user.email "tu@email.com"
Una vez por cada proyecto nuevo
hay que inicializar el repositorio
cd mi-proyecto git init
Si el proyecto ya existe y tenemos la URL de algún proveedor (como gitlab, github, etc.) entonces es más bien
cd algun/lugar/donde/pongo/proyectos git clone la-url
Cada que quieras saber
el estado del proyecto haz git status
git status
Cada que estés satisfecha
o que quieras guardar un momento en la historia del proyecto hay que hacer commit
git add mi_archivo.py git commit -m "resolví un super bug"
Cada que quieras probar
nuevas ideas pero no estés segura de si el resultado será util para el proyecto crea una rama
git checkout -b mi-super-idea
(-b crea una nueva rama si no existe)
Cuando quieras volver
al proyecto antes de la nueva idea que estás probando
git checkout master
(no tiene -b pues master es la rama por defecto). Puedes volver a tu gran idea con el mismo comando:
git checkout mi-super-idea
Cuando quieras subir
tus cambios locales por primera vez de cierta rama a un repositorio remoto haz push
git push -u origin master
Cambia master por el nombre de otra rama para respalar una rama en específico. Si no es la primera vez que lo haces entonces basta con estar en la rama que quieres respaldar y hacer
git push
Cuando quieras unir
los cambios hechos en una rama a la historia principal (rama master) del proyecto haz merge
git checkout master git merge mi-super-idea
Cuando quieras agregar una comexión a repositorio remoto
para respaldar tu proyecto o compartirlo con otras personas
git remote add nombre-del-remoto url-del-remoto
si es el único lugar donde vas a respaldar, o el primero que agregas, considera llamarlo origin, que es lo que se acostumbra. Si estás trabajando en un proyecto open source y quieres añadir como remoto el proyecto original considera llamarlo upstream.