Instalar git en Linux Ubuntu 18.04 LTS
Git es una herramienta de trabajo con control de versiones, en este tutorial vamos a trabajar con ella en Linux Ubuntu 18.04 LTS, así que lo primero que haremos será instalar git:
sudo apt install git
Una vez tenemos instalado git en nuestra máquina podemos crear un directorio de trabajo, por ejemplo vamos a crear un directorio llamado git1 en nuestra home.
cd /home/USUARIO
mkdir git1
cd git1
git init
Con el comando git init hemos creado un repositorio local en el directorio /home/USUARIO/git1, que será el directorio de trabajo, al hacer esto hemos creado un directorio oculto llamado .git/ donde se guardará la información del proyecto como versiones, configuración, etc...
¿Cómo funciona git?
Git funciona de la siguiente manera, tenemos el directorio de trabajo en el que iremos añadiendo y/o creeando los ficheros de nuestro proyecto. Cuando alguno de los ficheros queramos que se incluya en nuestro repositorio primero lo añadiremos a la zona stage con la instrucción add, stage es una zona de trabajo intermedia, aquí están los ficheros con los que trabajamos pero que aún no están preparados para ir al repositorio local. Una vez un fichero de stage ya está preparado para ir al repositorio local lo añadimos a él con la instrucción commit.
Se puede ver mejor el flujo de trabajo de git en la siguiente imagen:
Como se puede observar mientras se trabaja en una versión de un fichero en stage ésta no estará disponible en el repositorio local hasta que no se ejecute un commit, head apunta a los ficheros del último commit en la rama de trabajo actual, de momento solo tendremos una rama llamada master.
Si se quisiera después sincronizar el repositorio local con un repositorio remoto en un servidor el flujo de trabajo variaría tal y como se muestra en la siguiente imagen:
Añadir ficheros a staging:
Como vemos en las imágenes para añadir uno o varios ficheros al estado intermedio o staging necesitamos ejecutar la instrucción add.
Pero antes vamos a ver el estado de nuestro proyecto con la instrucción:
git status
Como vemos nos dice que estamos trabajando en la rama master, que no se ha hecho ningún commit (enviar ficheros al repositorio), ni hay ficheros para añadir al proyecto (a staging).
Vamos a crear un fichero llamado "primero.txt" y le añadiremos algo de texto:
echo "Hola Mundo" > primero.txt
Si ejecutamos git status de nuevo nos mostrará la siguiente información:
Estamos en la rama master aún, no se han hecho commits, pero hay archivos sin seguimiento, son archivos que no se han añadido con add al estado intermedio de staging.
Lo añadiremos a staging, para ello usamos:
git add primero.txt
Y volvemos a ejecutar status:
Como observamos ahora nos dice que estamos en la rama master y no hay commits pero que se ha agregado el fichero primero.txt al área de stage, incluso nos indica cómo sacarlo de stage en casod e ser necesario.
Configuración de git:
Git necesita un mínimo de configuración, que es conocer el nombre y el mail del usuario, para ello se deben ejecutar dos instrucciones:
git config --global user.name "NOMBRE"
git config --global user.mail "MAIL"
Si en algún momento queremos comprobar los datos de configuración introducidos podemos ejecutar la instrucción:
git config --global --list
Añadiendo ficheros al repositorio:
Una vez que ya tenemos los ficheros en staging podemos agregarlos al repositorio con la instrucción commit, recordemos que tenemos el fichero primero.txt en stage, así que será el único fichero que quedará en el repositorio local.
Cada vez que se hace un commit nos permite añadir una línea de texto que explique el motivo de dicho commit, en nuestro caso pondremos simplemente que añadimos el fichero primero.txt:
git commit -m "agregamos primero.txt"
Como observamos ahora status nos muestra que no hay nada nuevo en stage, ya que hemos hecho commit de todos los ficheros que había en el área intermedia.
Hasta ahora hemos seguido el camino de añadir ficheros a stage con add y al repositorio con commit, ahora vamos a modificar el fichero primero.txt y crear un segundo fichero de texto llamado segundo.txt Escribe lo que quieras en ambos ficheros.
Al ejecutar un status, git nos indicará lo siguiente:
Archivos del repositorio con modificaciones (primero.txt), archivos en el directorio de trabajo que no están añadidos a stage (segundo.txt).
Añadimos segundo.txt a stage:
Y hacemos commit de los ficheros en stage:
Ahora ya tendremos todos los ficheros del directorio de trabajo en el repositorio.
El log de git:
Para ver un histórico de commits que se han hecho en un proyecto determinado podemos utilizar la instrucción log:
git log
Ésto nos devolverá un listado con los commits realizados en orden inverso, tal y como se puede ver en la siguiente imagen: