Git es un potente software para el control de versiones diseñado por Linus Torvalds con el objetivo de mantener un control de versiones en aquellas aplicaciones que contienen un gran número de archivos de código fuente.
Este tipo de proyectos conllevan un gran número de cambios en las versiones de su código, por lo que permite coordinar y facilitar el trabajo al equipo de desarrolladores. Se puede utilizar para cualquier propósito, un sencillo script en Bash, un programa realizado en cualquier lenguaje, un desarrollo web, … del cual se quieran mantener los cambios de versiones para unificar el trabajo, dar marcha atrás a algún cambio aplicado o trabajar en distintas ramas para una posterior fusión con la principal, entre muchos otros fines.
Como ejemplo de uso cabe destacar al grupo de programación del núcleo de Linux, el cual hace uso de este software para su mantenimiento/desarrollo. Más información en la Wikipedia pinchando aquí.
Para todo programador es fundamental saber trabajar con este tipo de herramientas, las cuales se están imponiendo como un estándar en el trabajo diario de muchos profesionales y empresas, sobre todo si se trabaja en un equipo de desarrollo con más personas. Almacenar el código con un repositorio remoto, que puede ser público o privado, es posible haciendo uso de esta potente herramienta, permitiendo compartir el código con más personas o tener tu propio repositorio personal al que acceder estés donde estés.
A lo largo de este conjunto de entradas se explicarán los comandos básicos para trabajar tanto en la máquina local como en un repositorio remoto (GitHub o BitBucket). Empecemos!!!
Partimos de un directorio con dos archivos, index.php y style.css, con el siguiente contenido (tranquilo que en estas entradas no vamos a aprender a programar):
index.php
<!DOCTYPE html> <html> <head> <title>Formulario PHP</title> <link type='text/css' rel='stylesheet' href='style.css'/> </head> <body> <div id="main"> <p>Prueba de formulario en PHP</p> <form action="index.php" method="GET" > Categoria: <input type="text" name="categoria" /> Producto: <select name="producto" > <option value="Polo"> Polo </option> <option value="Quiksilver"> Quiksilver </option> <option value="Tommy"> Tommy </option> </select > <input type="submit" value="Enviar" /> </form > <?php if (isset($_GET['categoria'])){ $categoria = $_GET['categoria']; $producto = $_GET['producto']; echo "<p>Seleccionó el producto " . $producto . " de la categoría ". $categoria . "</p>"; } ?> </div> </body> </html>
style.css
html, body { margin: 0; padding: 0; } #main { margin: 0 auto; padding: 20px 15px; } #main p { font-weight: bold; }
Iniciar un proyecto
Dentro del directorio en el que vayamos a tener el código de nuestra aplicación ejecutamos el siguiente comando:
# git init
Se mostrará el siguiente mensaje:
Initialized empty Git repository in /path_directorio/.git/
Si todo ha ido bien, se creará el archivo oculto .git:
# ls -altr total 20 drwxr-xr-x 12 www-data www-data 4096 abr 23 13:51 .. -rw-r--r-- 1 root root 136 abr 23 14:01 style.css -rw-r--r-- 1 root root 1000 abr 23 14:02 index.php drwxr-xr-x 3 root root 4096 abr 23 14:02 . drwxr-xr-x 7 root root 4096 abr 23 14:02 .git
Ver el estado de los archivos
En estos momentos aún no tenemos ningún archivo agregado al repositorio, por lo que estarán todos listos para ser almacenados.
# git status On branch master Initial commit Untracked files: (use "git add <file>..." to include in what will be committed) index.php style.css nothing added to commit but untracked files present (use "git add" to track)
Agregar archivos al repositorio
Para agregar todos los archivos al repositorio usaremos el siguiente comando.
# git add -A
O el comando:
# git add .
Se indican los archivos que han sido agregados al repositorio:
# git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: index.php new file: style.css
Para agregar un archivo en concreto:
# git add nombre_archivo
Por ejemplo, vamos a modificar el archivo .css y agregarlo al repositorio, por ejemplo especificando el tamaño de letra (font-size):
html, body { margin: 0; padding: 0; font-size: 18px; }
Si comprobamos el estado de los archivos podemos ver qué archivo ha sido modificado, pendiente de ser actualizado en el repositorio:
# git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: index.php new file: style.css Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: style.css
Agregamos el archivo en concreto:
# git add style.css
Y ya estarían todos actualizados:
# git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: index.php new file: style.css
Con estos comandos iniciamos nuestro primer repositorio con Git en el directorio en donde tengamos nuestro proyecto. En las siguientes entradas veremos como crear el primer punto de partida o snapshot y la configuración inicial del repositorio.
Aaaadios!!!!