
Mejora tu flujo de trabajo con Git
Git es el sistema de control de versiones más utilizado actualmente y uno de los más modernos. Éste permite a los desarrolladores colaborar y realizar cambios en proyectos compartidos, a la vez que mantienen un seguimiento detallado de su progreso.
Instalación
Instala git desde la página oficial
Una vez instalada, tenemos algunos programas que vamos a poder usar, mi favorito es Git bash, ahí podemos ejecutar el siguiente comando:
git --version
ó git -v
Configuración Inicial
Iniciamos configurando nuestro usuario, asegurate que sea el mismo que tienes o vas a crear en GitHub
git config --global user.name "Jenner Acosta Diaz"
git config --global user.email my@jenner.pe
Indicamos que Visual Studio Code va a ser nuestro editor por defecto
git config --global core.editor "code --wait"
Si Tienes un problema con el editor, podemos buscar la ruta instalada
git config --global core.editor "'C:\Users\AGT\AppData\Local\Programs\Microsoft VS Code\Code.exe' -n -w"
Usemos Main como la Rama principal
git config --global init.defaultBranch main
Veamos la Configuración global
git config --global -e
Algunos presentan problemas con el CRLF, no es nada serio, es básicamente una interpretación de un carácter. Simplemente ejecuten este comando si presentan el error
//CR LF = True para Windows / Input para Linux-Mac
git config --global core.autocrlf true
Alias en Git
Los alias son atajos customizados que nos van a ayudar con nuestro Git, por lo general tengo 2 alias que son mis favoritos, pimero escribamos en consola:
git config --global alias.s "status --short --branch"
Ya tenemos nuestro primer alias, nos va a dar un resumen del estado de nuestro Git en un formato avanzado solo usando git s
git config --global alias.lg "log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all"
Este 2do comando nos ayuda a ver los LOG de una manera interactiva
Ahora con solo un git lg
vamos a tener un log muy profesional, estos temas lo vamos a ver más adelante y así más adelante vas a crear tus propios alias.
Nuestro primer repositorio
Iniciemos un nuevo Repositorio
git init
Status
Veamos el estado de nuestra rama actual, git se caracteriza por ser como una linea de tiempo, se van creando ramas para crear diferentes lineas de tiempo y asímismo podemos volver a unirlas, a eso lo llamaremos merge, sin dar más vueltas, codifiquemos:
git status
Stage
Es el lugar en el que se encuentran datos de un proyecto y sus cambios, algo así como poner nuestros archivos para producción. Podemos agregar todos los archivos al stage
git add .
También a ciertos archivos requeridos
git add *.html
git add js/*.js
Si queremos agregar todos los archivos de in directorio, solo agregamos el directorio
git add css/
Commit
Es la unidad central en nuestra línea de tiempo Git, es como sacar una fotografía a nuestro código y guardarlo en el historial. Lo podemos hacer de la siguiente manera:
git commit -m "Primer Commit"
Si vamos a hacer una actualización sobre un Commit ya creado podemos usar un atajo que va a hacer el stage y crear el commit en una!
git commit -am "Commit Actualizado"
Git Checkout — .
Puede que casualmente borremos nuestro trabajo, podemos recontruir el repositorio como en el ultimo commit
git checkout -- .
Ramas
Las ramas son como la linea temporal en Git y ahí nace su mágia, podemos crear cuantas ramas creemos y podemos unir diferentes ramas, si tu rama actual se llama master
te recomiendo a que la cambien por main
git branch -m master main
Tambien lo podemos cambiar para hacerla por default de manera global
git config --global init.defaultBranch main
Logs
Antes de continuar con las ramas podemos hacer una pruebas y empezar crear commits, con los logs vamos a poder ver una lista de todos los commits realizados en el repositorio.
git log
El problema que podemos ver es que el hash del commit es un poco confuso, y hay mucha información que no es de completa relevancia, pero recuerda que tenemos un alias creado, lo podemos usar.
git lg
Con este pequeño alias, tenemos toda la información minimizada y más simple de leer.
Git ignore
Puede que existan archivos que no nos importe hacer seguimiento, para ello creamos el archivo .gitignore
, lo creamos en la raiz del proyecto.
Ahí agregamos todos los archivos que queremos que git lo ignore, obviamente el gitignore si es importante que git le haga seguimiento.
dist/
*.log
Ramas II
Podemos crear diferentes Ramas como:
git checkout newRama
Ahí podemos realizar todos los commits que creamos pertinentes y de ahí volver a la rama principal, a esto lo llamamos Merge
Merge
Va tratar de unir una rama y otra, esto genera 3 posibles escenarios:
Fast-foward
Git detecta que no hay cambio en la rama principal y los cambios pueden ser reintegrados de forma transparente, cada uno de los commits formarán parte de la rama principal como si nunca lo hubiéramos separado
Primero tenemos que estar en la rama a donde nos vamos a unir, vamos a usar el siguiente comando:
git merge newRama
Podemos borrar la rama una vez que ya no la vamos a requerir
git branch -d rama-villanos
Uniones Automáticas
Git detecta que hubo un cambio en la rama principal que las ramas secundarias desconoce, así que al momento de hacer el merge git los agrega de manera automática marcando que en este momento ambas ramas se unieron
Union Manual
En el caso de que una rama aplique sobre una rama principal con las mismas líneas donde vamos a querer hacer los cambios, Git nos va a decir que no se puede, que lo resolvamos de manera manual, una vez resuelto ese conflicto, va a crear un commit nuevo que se conoce como el merge commit.
Solo editamos el archivo y nos quedamos con lo que queremos, y simplemente hacemos un commit con los cambios actualizado, finalizamos eliminando las ramas que no usamos.
Tags – Etiquetas
Son utilizados para marcar versiones o raíces de un programa, hacen referencia a un commit específico.
Creamos un Tag
git tag "1.0.0"
Veamos los Tags Creados
git tag
Vamos a crear nuestra primera version de producción
git tag -a v1.0.0 -m "Version 1.0.0 lista"
GitHub Remote – Push & Pull
Necesitamos crear una cuenta en GitHub, también va a funcionar si usamos otra plataforma, esto va a hacer que nuestro repositorio local esté en la nube.
Agregamos un origen remoto
git remote add origin <url>
Podemos revisar nuestra fuentes remotas:
git remote -v
Ya podemos subir nuestro repositorio a GitHub
git push -u origin main
Recordar e origin en la fuente remota, la cual podemos tener varias fuentes con diferentes nombre y main va a ser la rama que vamos a subir
Push de los Tags de nuestro repositorio
Cuando hacemos un push por lo general no se mandan los tags, para ello podemos hacer:
git push --tags
A los tags podemos crear versiones Release
Pull
Para traer datos del servidor usamos pull
Para traer datos del servidor usamos pull
git pull <origen> <rama>
Recordar e origin en la fuente remota, la cual podemos tener varias fuentes con diferentes nombre y main va a ser la rama que vamos a subir
Clonar un repositorio
Primero copiemos el URL de nuestro repositorio a clonar
git clone <url>