Programador Web Inicial Front-End Developer
Programador Web Inicial Front-End Developer
Programador Web Inicial Front-End Developer
Git
Presentación
En esta unidad vemos cómo son los pasos para trabajar con sistemas de control de
versiones, permitiendo conocer el estado de un proyecto, los cambios que se realizan,
y las personas que intervienen.
Objetivos
Que los participantes logren…
● Conocer cuáles son las herramientas para trabajar con control de versiones.
Comparado con sistemas de control de versión antiguos como SVN o CVS, Git no
necesita de un repositorio (lugar donde se alojan los archivos y sus versiones) central.
Esto es lo que lo hace un sistema distribuido lo cual da una flexibilidad imposible con
otros sistemas.
Los repositorios de cada usuarios son un clon completo y no una copia parcial de la
última versión, esto permite, entre otras cosas, trabajar en modo offline, para luego,
en caso de ser necesario, sincronizar los cambios con un repositorio remoto (trabajo
colaborativo).
De esta forma, le estamos diciendo a Git con que nombre y dirección de mail tiene
que guardar los cambios que realicemos.
Esto hará que veamos la salida (o respuesta) de los comandos de forma más amigable.
2. Estados principales
Es importante mencionar que git cuenta con 3 estados: confirmado (commited),
modificado (modified) y preparado (staged).
Confirmado significa que los datos están almacenados de manera segura en nuestro
repositorio local.
3. Agregar y commitear archivos y
cambios
Podemos corroborar que se creó verificando que se haya creado en ese directorio
una carpeta con el nombre .git. Es en esta carpeta donde Git almacena todos los
cambios y configuraciones de nuestro repositorio.
Lo que Git nos dice acá es que tenemos “Untracked files” o archivos sin versionar y
nos muestra una lista donde aparece nuestro archivo. También nos indica que para
agregarlo en un commit debemos usar el comando git add seguido de la ruta del
archivo. Entonces escribimos:
Este comando no devolverá ningún resultado. Lo que el comando add hace es
pasar al archivo al estado denominado stage.
git add acepta otro tipo de parámetros que nos serán útiles para trabajar con varios
archivos a la vez, por ejemplo:
git add *.jpg agregará todos los archivos cuyo nombre termine en .jpg al área de
stage.
git add ruta/a/directorio agregará todos los archivos del directorio al área de
stage.
git add . agregará todos los archivos modificados y/o no trackeados al área de
stage.
Git nos indica que en el próximo commit se incluirá el archivo compras.txt que
acabamos de crear y agregar al repositorio. Confirmamos la operación escribiendo:
La salida debería ser similar a:
El comando git commit confirma los cambios del área de stage y los guarda en el
repositorio. El parámetro -m es requerido y se utiliza para asociar un mensaje al
commit que estemos haciendo. Este mensaje va siempre entre comillas dobles. Es
muy importante que los mensajes sean lo suficientemente descriptivos como para que
si el día de mañana revisamos la historia de nuestro repositorio sepamos donde se hizo
cada cambio o conjunto de cambios.
Si ejecutamos ahora el comando git status veremos que nos indica que no hay
cambios y que nuestro espacio de trabajo se encuentra “limpio”.
Esta variación del comando agrega al área de stage y guarda los cambios de todos los
archivos ya trackeados que hayamos modificado. Es de suma utilidad aprender este tipo
de atajos, ya que nos ahorran mucho tiempo a la hora de trabajar.
4. Ver el log
Para revisar el historial de nuestro repositorio usamos el comando git log. Si
seguimos los pasos hasta acá, deberíamos ver algo similar a esto:
Ahí se ven todos nuestros commits, desde el más nuevo hasta el más viejo. También se
ve el autor (con los datos que ingresamos previamente) y la fecha en la que fueron
realizados, así como también el mensaje que se incluyó en cada commit.
Ignorar archivos
A veces es necesario indicar a Git que no realice seguimiento alguno sobre algunos
archivos. Para esos casos contamos con un archivo especial que llamaremos
.gitignore donde podemos definir las reglas de los archivos a ignorar.
Vamos a usar nuestro editor para crear un nuevo archivo llamado privado.txt. Una vez
creado, si ejecutamos el comando git status podemos ver que figura como
archivo no trackeado. Para hacer que Git ignore por completo este archivo,
simplemente creamos el archivo .gitignore (punto gitignore) en la carpeta raíz de
nuestro repositorio y escribimos en él la ruta del archivo que queremos ignorar, en
nuestro caso, privado.txt.
Si ejecutamos una vez más el comando git status, vemos que privado.txt ya no
aparece como archivo nuevo. El que aparece ahora es .gitignore, que debemos
agregar y commitear para hacer permanente nuestra lista de archivos ignorados.
5. Github, repositorio remoto
¿Que es Github?
Github es un sitio web y servicio gratuito de alojamiento de repositorios Git.
Cualquier persona o empresa puede abrir una cuenta y alojar la cantidad de
repositorios que desee.
Es importante tener en cuenta que, por defecto, los repositorios alojados en Github
son públicos. Esto quiere decir que cualquier usuario (o no) podrá acceder al código
allí alojado, aunque no podrá realizar modificaciones sin que algún administrador o
dueño del repositorio en cuestión le brinde acceso de escritura.
Crear un repositorio
Una vez que tenemos una cuenta, para crear un repositorio utilizamos el signo (+) que
figura en la esquina superior derecha, junto a nuestra imagen de perfil, y
seleccionamos la opción “New Repository”
Se nos presenta un formulario con la información básica que debemos ingresar para
crear el mismo.
Owner - Es el dueño del repositorio. En caso de pertenecer a una organización
dentro de Github podemos ceder este puesto.
Las otras opciones nos permiten crear un archivo de README automáticamente con la
creación del repositorio, agregar un archivo .gitignore basado en el lenguaje o
framework principal de nuestro proyecto y asignarle un tipo de licencia al mismo.
Una vez completados los datos, apretamos el botón de Create repository y seremos
redirigidos a la pantalla principal de nuestro repositorio.
6. Enviando y trayendo cambios
desde un repositorio remoto
Con este comando estamos agregando un nuevo “remote” a nuestro repositorio local
de Git. Un remote es una copia del repositorio situada en otra computadora. Podemos
utilizar esta copia remota para enviar y recibir cambios de nuestro código.
El último paso es enviar nuestros archivos al servidor, para eso usamos el comando
especificado
Esto envía (o pushea) a origin los cambios de la branch o rama, master (la principal
del repositorio). El parámetro -u hace que la rama master de origin llamada
origin/master esté vinculada con nuestra rama local master. Esto hace que Git nos
facilite enviar y recibir cambios de esta branch.
El comando para traer cambios del un repositorio remoto hacia nuestra computadora,
una vez que ya tenemos nuestro repositorio local, es el siguiente:
Esto hace una copia del repositorio remoto en la carpeta en la que estemos parados,
trayendo toda su historia con él. Es importante notar el espacio y punto al
final del comando. Esto le dice a Git que la copia debe hacerse en el directorio
actual. En caso contrario Git crea una carpeta con el nombre del repositorio y lo clona
ahí.
Ahora podemos trabajar de forma normal en esta nueva computadora. A medida que
vamos trabajando vamos haciendo nuevos commits y cuando estemos listos podemos
correr git push para enviar los cambios a Github.