Underc0de

Programación General => Otros lenguajes => Mensaje iniciado por: ANTRAX en Mayo 25, 2017, 03:01:54 PM

Título: Aprende a usar GIT de forma sencilla
Publicado por: ANTRAX en Mayo 25, 2017, 03:01:54 PM
(https://free-time-katas.github.io/img/git.jpg)

En esta breve guía enseñaremos todo lo que necesitas saber sobre GIT.



DESCARGAS



OSX: https://git-scm.com/download/mac
Windows: https://git-for-windows.github.io/
Linux: https://git-scm.com/book/es/v1/Empezando-Instalando-Git#Instalando-en-Linux




CREAR UN REPOSITORIO



Crea un directorio nuevo, ábrelo y ejecuta

Código (text) [Seleccionar]
git init

para crear un nuevo repositorio de git.




HACER UN CHECKOUT



Crea una copia local del repositorio ejecutando

Código (text) [Seleccionar]
git clone /path/to/repository

Si utilizas un servidor remoto, ejecuta

Código (text) [Seleccionar]
git clone username@host:/path/to/repository




FLUJO DE TRABAJO



Tu repositorio local esta compuesto por tres "árboles" administrados por git.
El primero es tu Directorio de trabajo que contiene los archivos, el segundo es el Index que actua como una zona intermedia, y el último es el HEAD que apunta al último commit realizado.

(http://rogerdudler.github.io/git-guide/img/trees.png)




ADD & COMMIT



Puedes registrar cambios (añadirlos al Index) usando

Código (text) [Seleccionar]
git add <filename>
git add .


Este es el primer paso en el flujo de trabajo básico. Para hacer commit a estos cambios usa

Código (text) [Seleccionar]
git commit -m "Commit message"

Ahora el archivo esta incluído en el HEAD, pero aún no en tu repositorio remoto.




ENVIO DE CAMBIOS



Tus cambios están ahora en el HEAD de tu copia local. Para enviar estos cambios a tu repositorio remoto ejecuta

Código (text) [Seleccionar]
git push origin master

Reemplaza master por la rama a la que quieres enviar tus cambios.

Si no has clonado un repositorio ya existente y quieres conectar tu repositorio local a un repositorio remoto, usa

Código (text) [Seleccionar]
git remote add origin <server>

Ahora podrás subir tus cambios al repositorio remoto seleccionado.




RAMAS



Las ramas son utilizadas para desarrollar funcionalidades aisladas unas de otras. La rama master es la rama "por defecto" cuando creas un repositorio. Crea nuevas ramas durante el desarrollo y fusiónalas a la rama principal cuando termines.

(http://rogerdudler.github.io/git-guide/img/branches.png)

Crea una nueva rama llamada "feature_x" y cámbiate a ella usando

Código (text) [Seleccionar]
git checkout -b feature_x

vuelve a la rama principal

Código (text) [Seleccionar]
git checkout master

y borra la rama

Código (text) [Seleccionar]
git branch -d feature_x

Una rama nueva no estará disponible para los demás a menos que subas (push) la rama a tu repositorio remoto

Código (text) [Seleccionar]
git push origin <branch>




ACTUALIZA & FUSIONA



Para actualizar tu repositorio local al commit más nuevo, ejecuta

Código (text) [Seleccionar]
git pull

En tu directorio de trabajo para bajar y fusionar los cambios remotos. Para fusionar otra rama a tu rama activa (por ejemplo master), utiliza

Código (text) [Seleccionar]
git merge <branch>

En ambos casos git intentará fusionar automáticamente los cambios. Desafortunadamente, no siempre será posible y se podrán producir conflictos. Tú eres responsable de fusionar esos conflictos manualmente al editar los archivos mostrados por git. Después de modificarlos, necesitas marcarlos como fusionados con

Código (text) [Seleccionar]
git add <filename>

Antes de fusionar los cambios, puedes revisarlos usando

Código (text) [Seleccionar]
git diff <source_branch> <target_branch>




ETIQUETAS



Se recomienda crear etiquetas para cada nueva versión publicada de un software. Este concepto no es nuevo, ya que estaba disponible en SVN. Puedes crear una nueva etiqueta llamada 1.0.0 ejecutando

Código (text) [Seleccionar]
git tag 1.0.0 1b2e1d63ff

1b2e1d63ff se refiere a los 10 caracteres del commit id al cual quieres referirte con tu etiqueta. Puedes obtener el commit id con

Código (text) [Seleccionar]
git log

también puedes usar menos caracteres que el commit id, pero debe ser un valor único.




REEMPLAZA CAMBIOS LOCALES



En caso de que hagas algo mal (lo que seguramente nunca suceda ;) puedes reemplazar cambios locales usando el comando

Código (text) [Seleccionar]
git checkout -- <filename>

Este comando reemplaza los cambios en tu directorio de trabajo con el último contenido de HEAD. Los cambios que ya han sido agregados al Index, así como también los nuevos archivos, se mantendrán sin cambio.

Por otro lado, si quieres deshacer todos los cambios locales y commits, puedes traer la última versión del servidor y apuntar a tu copia local principal de esta forma

Código (text) [Seleccionar]
git fetch origin
git reset --hard origin/master





DATOS ÚTILES



Interfaz gráfica por defecto

Código (text) [Seleccionar]
gitk

Colores especiales para la consola

Código (text) [Seleccionar]
git config color.ui true

Mostrar sólo una línea por cada commit en la traza

Código (text) [Seleccionar]
git config format.pretty oneline

Agregar archivos de forma interactiva

Código (text) [Seleccionar]
git add -i




FUENTE



rogerdudler