Git
Git. El sistema de control de versiones libre y de código abierto.
Git es un VCS (Version Control System) diseñado por Linus Torvalds en el año 2005 para almacenar el núcleo de Linux. Git es un software sencillo, distribuido, multiplataforma y capaz de almacenar grandes proyectos.
Git se compone de 3 estados:
INSTALAR GIT
Linux (apt)
sudo apt-get install git
Linux (yum):
sudo yum install git
Windows y Mac
Descargar instalador desde la página oficial de Git.
CONFIGURACIÓN
git config --global user.name [nombre]
git config --global user.email [correo]
git config --global color.ui true
CONFIGURAR EDITOR
Sublime
git config --global core.editor "subl -n -w"
Gedit
git config --global core.editor gedit
Vim
git config --global core.editor vim
Los archivos creados en el repositorio se mantienen en el primer estado (working directory). Una vez creados es posible añadirlos con el comando add pasando al segundo estado (staging area) con la opción de devolverlo al primer estado mediante la opción cached. Finalmente con el comando commit se incluyen los archivos al repositorio en el tercer y último paso (git directory).
A continuación se muestran las opciones más utilizadas en Git
CREAR REPOSITORIO
git init [repositorio]
CREAR REPOSITORIO
mkdir [repositorio]
cd [repositorio]
git init
ELIMINAR REPOSITORIO
rm -rf .git
ELIMINAR REPOSITORIO
rm -rf [repositorio]
CREAR ARCHIVO
touch [archivo]
COMPROBAR ESTADO DE REPOSITORIO
git status
COMPROBAR ARCHIVO
git add -n [archivo]
AÑADIR ARCHIVO AL STAGING AREA
git add [archivo]
DESHACER LA ACCIÓN ADD
git reset
AÑADIR TODOS LOS ARCHIVOS AL STAGING AREA
git add -A
DESHACER AÑADIDO DE ARCHIVO EN STAGING AREA
git rm --cached [archivo]
ELIMINAR ARCHIVO
git rm [archivo]
ELIMINAR ARCHIVO FORZADO
git rm -f [archivo]
AÑADIR ARCHIVOS A REPOSITORIO
git commit -m "[texto]"
AÑADIR ARCHIVOS A UN COMMIT ANTERIOR
git commit --amend
git commit --amend "[nuevoTextoacommitanterior]"
Ejemplo de un commit de:
Se crea el directorio y se accede a él.
mkdir proyecto1
cd proyecto1
Se crean los archivos
touch index.html
touch index.css
Se añaden al estado de preparación
git add -A
Se añaden al repositorio
git commit -m "primer commit"
Se añade una imagen al index.html
git add index.html
git add help.png
git commit -m "segundo commit con imagen"
ETIQUETAS LIGERAS
git tag "[númeroversión]"
git tag 0.5
ETIQUETAS ANOTADAS
git tag -a [numeroversión] -m "texto"
git tag -a 0.5 -m "versión estable"
git tag -a [numeroversión] -m [SHA]
git tag -a 0.5 -m git 623d56c27e080bef75e3760bf0b869969f4b2bad
COMPROBAR VERSIÓN DE PROYECTO (HISTORIA)
git log
git tag -l
git log --oneline
git --oneline --graph
git log -2
COMPROBAR DIFERENCIAS ENTRE VERSIONES
git diff [SHA]
git diff [SHA1] [SHA2]
RESETEAR
git reset --soft [SHA]
git reset --mixed [SHA]
git reset --hard 623d56c27e080bef75e3760bf0b869969f4b2bad
Soft: Devuelve al commit indicado mediante el parámetro SHA pero mantiene los archivos en staging area.
Mixed: Devuelve al commit indicado mediante SHA y los archivos los devuelve a working directory.
Hard: Devuelve al commit indicado mediante SHA y no mantiene los archivos en ningún estado. En caso de error si se almacena el código SHA eliminado es posible recuperar los datos volviendo a ejecutar el reset --hard indicado dicho código SHA.
Git recomienda crear otras ramas y no apoyarse únicamente en la rama principal que es creada por defecto (master) mediante el primer commit. Git permite, mediante las ramas, desarrollar distintas secciones del proyecto por separado o solucionar errores, para después, poder mezclar todas esas ramas.
CREAR RAMA
git branch [nombre_de_rama]
ELIMINAR RAMA
git branch -d [nombre_de_rama]
ELIMINAR RAMA FORZADA
git branch -D [nombre_de_rama]
RENOMBRAR RAMA
git branch -m [rama_actual] [nueva_rama]
REVISAR LISTA DE RAMAS
git branch -l
CAMBIARSE DE RAMA
git checkout [rama]
CREAR Y MOVERSE A UNA RAMA
git checkout -b [nombre_de_rama]
MEZCLAR RAMAS
git merge [rama_a_mezclar]
REESCRIBIR PROYECTO
git rebase [rama]
STASHING
Git dispone de un estado intermedio entre el staging area y el git directory llamado stashing. Este estado permite a git guardar cambios de forma temporal que pueden ser útiles en caso de que no sea conveniente hacer un commit y sea necesario cambiar de rama y mantener temporalmente los cambios aparcados.
git stash
git stash list
git stash apply stash@{[numerostash]}
CHERRY PICK
Cherry pick permite extraer un commit y establecerlo en otro lugar.
git checkout [rama_destino]
git cherry-pick [sha_commit]
Para poder comentar es necesario iniciar sesión