¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Guía básica de Git y GitHub
Conceptos
- GIT: Aplicación para mantener un repositorio local.
- GitHub: Sistema de repositorios públicos pasado en Git.
Flujo de trabajo básico:
- Se modifican los archivos en el directorio de trabajo.
- Se trasladan las modificaciones al “stage”. Comando “add”.
- Se crea un “snapshot” del “stage” en un momento dado. Comando “commit”.
- Se actualiza el repositorio local desde el público. Comando “pull”.
- Se actualiza el repositorio público con el local. Comando “push”.
Comandos preliminares
git --version git help
Configuración inicial
git config --global user.name "juanma" git config --global user.email "juanma@smartastur.com"
Se puede acceder al fichero de configuración de git mediante
git config --global -e
Para establecer un editor de texto diferente a vi, por ejemplo, el joe:
git config --global core.editor "joe"
Iniciar un repositorio
Ir a la carpeta raíz del proyecto y teclear
git init
Comandos básicos
Muestra el estado del repositorio que nos informa de:
- Archivos pendientes de enviar al stage
- Archivos del stage modificados después del último snapshot
git status git status -s git status -s -b
Añade archivos del proyecto al stage.
git add . git add -A git add README.md git add carpeta
Crea un snapshot del stage
git commit -m "Mensaje"
Añadir al stage y al snapshot
git commit -am "Mensaje"
Devolver el proyecto completo al estado del último commit
git checkout -- .
Sólo parcialmente
git checkout -- README.md
Historial de commits
git log git log --oneline --decorate --all --graph
Sacar un archivo del stage. Su contenido no cambia en nuestra carpeta de trabajo, sólo que desaparecerá del stage o quedará con el contenido que tenía antes de añadirlo a él.
git reset * git reset README.md git reset carpeta
Crear un alias para comandos largos, por ejemplo, el log o el status
git config --global alias.lg "log --oneline --decorate --all --graph" git lg git config --global alias.s "status -s -b" git s
Mostrar las diferencias entre el proyecto y el stage. No dice nada al respecto de que pudieran haber cambios sin commit.
git diff
Para ver las diferencias entre el stage y el snapshot.
git diff -staged
Comandos para la gestión de commits
Volver a un snapshot del pasado
git reset --hard 860c6c2
donde 860c6c2 es el identificativo del snapshot que se puede obtener con
git reflog
Ramas o branches
La rama principal es la master o main, y es la que se utiliza como rama de producción.
Podemos crear ramas para, por ejemplo:
- Abrir una línea de desarrollo sin afectar a la rama principal, y cuando éste termine, se integren los cambios en el proyecto.
- Abrir una línea de desarrollo sobre un snapshot para dar servicio a una versión antigua.
Crear una rama
git branch nueva-rama
Lista las ramas creadas
git branch
Activar una rama
git checkout nueva-rama
Diferencias entre ramas
git diff nueva-rama master
Integrar rama en master
git checkout master git merge nueva-rama
Una vez integrada, conviene que sea borrada
git branch -d nueva-rama
Etiquetas
Son de utilidad para poner marcas de versión.
Poner etiqueta al snapshot actual o HEAD.
git tag -a v1.0.0 -m "Versión 1.0.0"
Poner etiqueta a un snpashot en particular
git tag -a v0.1.0 -m "Versión alfa" 345d7de
Mostra información completa de la etiqueta
git show v1.0.0