Tu primer repositorio

¿Qué es un repositorio?

Un repositorio es un espacio (generalmente un directorio) donde se almacenan archivos, y gestionar las distintas versiones a lo largo del tiempo de forma eficiente y cómoda para las personas involucradas en dicho repositorio. Git nos proporciona una manera de gestionar estos repositorios localmente. Estos repositorios pueden alojarse en la nube, mediante GitHub o de manera local en nuestra computadora o servidor.

Creando un repositorio

Para crear nuestro repositorio debemos posicionarnos mediante interfaz de línea de comandos al directorio en donde queremos que se aloje nuestro repositorio. En este caso nuestro directorio se llamará repo-test. Luego ejecutamos el comando git init. Este comando creará un directorio llamado .git/ que tendrá todos los archivos necesarios para implementar el repositorio. Al finalizar la creación del repositorio, si tenemos un prompt que nos indique información de git, nos dirá que estamos en la rama master. Esto lo veremos en detalle cuando veamos el concepto de rama o branch.

Entornos de git

Cuando usamos git, tenemos 3 entornos importantes en donde manipularemos nuestros archivos.

  • Área de trabajo (workspace): Es el directorio en donde trabajaremos con nuestros archivos a gestionar.
  • Área de preparación (staging): Es el entorno donde se “preparan” los archivos modificados para ser subidos al repositorio.
  • Repositorio: Es en donde se localizan todos los archivos subidos desde el área de staging.

Al tener un archivo en nuestra área de trabajo y lo modificamos, el archivo se dice que está modificado. Y cuando está subido al área de preparación, se dice que un archivo staged.

Tu primer commit

En nuestro nuevo repositorio (vacío) crearemos un archivo de texto en donde le agregaremos unas palabras.

-- archivo.txt --
Hola, mi nombre es Jaimito.
Estoy aprendiendo git!

Al crear este archivo en el repositorio, se nos creará un nuevo archivo untracked. Esto significa que hay un archivo nuevo en el repositorio que no está siendo preparado para subirse. Entonces, lo que haremos será subirlo al repositorio. Pero antes, necesitamos subirlo al área de staging. Para subir un archivo al área de staging, usaremos el comando git add <file1> <file2> ... <fileN>.

Todos los eventos que transcurran en el repositorio pueden consultarse mediante el comando git status. Nos dirá la rama en la que estamos posicionados, los archivos untracked, los archivos modified, los que están en el area de staging, entre otras cosas. Existe una versión más compacta, se puede usar con git status -s o bien git status --short

Luego de consultar el estado del repositorio después de agregar archivo.txt a staging, la salida será similar a la siguiente:

$ git status
On branch master
 
No commits yet
 
Changes to be commited:
    (use "git rm --cached <file>" to unstage)
    new file:   archivo.txt

Como vemos, aquí nos dice que, como habíamos hecho, archivo.txt está listo para subirse al repositorio.

Note

Si un archivo(s) está en el área de staging y queremos sacarlo(s) de ahí, podemos usar el comando git restore --staged <file1> <file2> ... para quitarlo(s).

A modo didáctico, si quisieramos quitar el archivo de staging tendremos la salida:

$ git remove --staged archivo.txt
On branch master
 
No commits yet
 
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        archivo.txt

Como se ve en la salida, archivo.txt pasaría a ser un archivo sin seguimiento (untracked). Todos los archivos que NO estén en staging no se subirán al repositorio.

Una vez que tenemos todos los archivos preparados, los subiremos al repositorio, lo que se le dice “hacer un commit”. Para hacer esto lo podemos hacer de dos maneras.

Commit (Forma 1)

$ git commit -m "Agregando el primer archivo al repositorio!"
[master (root-commit) 6f2da48] Agregando el primer archivo al repositorio!
 1 file changed, 2 insertions(+)
 create mode 100644 archivo.txt

Aquí distinguimos información importante:

  • La rama en donde se hizo el commit (master).
  • El ID del commit (6f2da48). Este ID es único e irrepetible para cada commit.
  • Los archivos modificados. Podemos ver cuántos archivos se modificaron, así como también las líneas nuevas agregadas. 1 file changed, 2 insertions(+)
  • Los nombres de los archivos modificados. create mode 100644 archivo.txt

Commit (Forma 2)

Para la segunda forma, basta con introducir el comando git commit. Apenas introducimos el comando, se nos abre nuestro editor de texto configurado anteriormente para introducir el mensaje asociado al commit, donde podemos escribir mensajes más extensos y detallados para los commits. Este método es recomendado cuando los cambios realizados son complejos o difíciles de explicar en pocas palabras.

Tip

Otro comando popular es git commit -a. La -a representa todo (all). Esta opción prepara automáticamente todos los archivos para realizarles commit. Nos permite saltarnos el paso de agregar los archivos a staging. Si se agregan nuevos archivos, la opción -a no los preparará. Solo se confirmarán los archivos que el repositorio de Git tenga conocimiento.

Siguiente: Manipulación de archivos