Introducción
- Prólogo
- Sobre mí
- Requisitos previos
- Únete a la comunidad de Discord
- Reportando erratas y sugerencias
- Agradecimientos
Cambios entre versiones del libro
Un poco de teoría
- ¿Qué es un control de versiones y por qué es importante?
- ¿Qué es Git?
- Los fundamentos de Git
- Los tres estados en Git
- ¿Qué es una rama?
- ¿Qué representa la rama
mastero la ramamain? - ¿Git y GitHub son lo mismo? ¿Qué relación tienen?
Instalando y Configurando Git
- ¿Cómo saber si tengo Git instalado en mi sistema?
- ¿Cómo instalar Git?
- ¿Cómo configuro el nombre y correo usado en Git?
- ¿Cómo configurar el editor por defecto que abre Git?
- ¿Cómo puedo comprobar mi configuración de Git?
- Git y la línea de comandos
Trabajando con Git de forma local
- ¿Cómo inicializar un nuevo proyecto Git?
- ¿Qué es el directorio de trabajo?
- ¿Cómo deshacer un archivo modificado?
- ¿Cómo añadimos archivos al área de staging?
- ¿Cómo puedo sacar un archivo o varios del área de staging?
- ¿Qué es un commit?
- ¿Cómo puedo hacer un commit?
- Haz commit y sáltate el área de staging
- ¿Qué es el
HEAD? - ¿Cómo puedo deshacer mis cambios?
- ¿Cómo puedo ignorar archivos?
- ¿Cómo consigo ignorar siempre los mismos archivos en todos mis repositorios?
- ¿Cómo le indico a Git que deje de hacer el seguimiento de un archivo (o varios archivos)?
Ramas en Git
- Empezamos con las ramas
- Trabajando con ramas
- Fusionando ramas
- Resolviendo conflictos
- Hora de podar: Eliminando ramas
Rebase
- ¿Qué es el rebase?
- No uses
git rebasepara esto - Los peligros del rebase
Merge vs Rebase
Trabajando con Git de forma remota
- Creando un repositorio remoto en GitHub
- Clonando un repositorio remoto ya creado previamente
- ¿Cómo enlazar un repositorio local con un repositorio remoto?
- Traer los cambios del repositorio remoto a mi repositorio local
- Escribiendo en el repositorio remoto
- Trabajando con ramas en remoto
Configurando la conexión SSH con GitHub
- Cómo generar una llave SSH
- Usar una llave SSH
- Añadir clave SSH a tu cuenta de GitHub
- Probando, probando…
Cómo contribuir a un proyecto de código abierto
- ¿Por qué debería contribuir al código abierto?
- ¿Cómo empiezo a contribuir a un proyecto de código abierto?
- ¿Cómo hago una Pull Request al proyecto original?
- ¿Cómo puedo sincronizar mi fork con el repositorio original?
- ¿Con qué puedo contribuir a un proyecto?
Flujos de trabajo y estrategias de ramas en Git
- Git Flow
- GitHub Flow
- Trunk Based Development
- Ship / Show / Ask
- Conclusiones sobre las estrategias de flujos de trabajo en Git
Buenas prácticas al trabajar con Git
- ¿Cada cuánto debería hacer un commit?
- ¿Cómo puedo escribir un buen mensaje de commit?
- ¿Cómo puedo escribir un buen nombre de rama?
- ¿Debería alterar el historial de mi proyecto?
- No hagas commit de código generado ni configuración particular
- ¿Qué debo tener en cuenta para hacer una buena Pull Request?
- Cambia tu rama
masteramaino similares - Firma correctamente tus commit con GPG
- ¿Cómo debería revisar una Pull Request?
Hooks de Git
- ¿Qué es un hook?
- ¿Qué hooks hay disponibles?
- ¿Cómo puedo crear mi propio hook?
Alias en Git
- ¿Cómo crear tu propio alias en Git?
- ¿Puedo crear alias para comandos que ya existen?
- ¿Puedo crear un alias para un comando externo?
- ¿Cómo puedo listar todos los alias que he creado?
- ¿Cuáles son los mejores alias?
Stash, el almacén temporal de cambios
- Guarda tus cambios en un stash
- Aplicando los cambios del stash
- Crea una rama a partir de un stash
- Eliminando el almacén temporal
Trucos con Git
- ¿Cómo puedo aplicar los cambios de un commit a otro?
- Cómo detectar qué commit es el que ha introducido un bug
- ¿Quién ha tocado este fichero? ¿Quién ha hecho cambios?
- ¿Cómo puedo saber quién añadió una línea por primera vez?
- Recupera un archivo en concreto de otra rama o commit
- Encuentra el primer commit de un repositorio
- Descubre el máximo contribuidor de un repositorio
- Recupera todos los commits para un usuario en específico
- Clonar un repositorio sin descargar todo el histórico
- Vuelve a la rama previa en la que estaba trabajando
- Descargar los ficheros de un repositorio remoto sin tener que clonarlo
- Aprovecha el auto-corrector de Git para que ejecute comandos parecidos
- Domina el formato corto de
git status --porcelain, la opción para que nuestros scripts usen comandos de Git- Configuraciones a tener en cuenta
Errores comunes en Git y sus soluciones
- Me dice que no es un repositorio de git
- Hago
pully me dice que no es un repositorio - He escrito mal el último commit
- He escrito mal la rama que he creado
- He hecho un
git pushy me da error - He hecho commits a la rama principal que debían realizarse en otra rama
- xcrun: error: invalid active developer path
GitHub CLI
- Instalando
ghen el sistema… - Realizando la configuración inicial de
gh - Usando
gh