Mini Tutorial Git
Estados de Git
Git tiene tres estados para el código:
-
Working Directory: El directorio de trabajo, lugar donde se encuentra el código que estamos escribiendo.
-
Staging Area: Archivos de código listos para ser llevados al repositorio.
-
Respository: Archivos dentro del repositorio.
Configuración inicial de Git
Git está disponible para instalar en Windows, Linux y macOS. Descarge e instale la versión que
corresponda para su sistema operativo.
Una vez instalado, puede acceder a Git a través de la terminal en Linux y macOS o bien a través de GitBash en Windows.
Recién instalado Git, es necesario configurar el nombre y correo del usuario. El siguiente comando asignará el nombre de usuario, este nombre es el
que quedará registrado en cada commit que se haga en el repositorio.
$ git config --global user.name "Juan Perez"
Si ejecuta el comando sin argumentos, mostrará el nombre que se encuentra configurado actualmente:
$ git config --global user.name
Para registrar el correo del usuario el proceso es similar, el comando es el siguiente:
$ git config --global user.email "juan.perez@correo.com"
Si ejecuta el comando sin argumentos, mostrará el correo que se encuentra configurado actualmente:
$ git config --global user.email
La terminal/WindowsBash puede mostrar los resultados de Git en colores, esto facilita su lectura. Para habilitar esta característica basta con ejecutar
el comando:
$ git config --global color.ui true
Para ver la configuración actual de Git, ejecute el siguiente comando:
$ git config --global --list
$ cat .gitconfig
Comenzando con Git
El comando git help
muestra información del manual de git para algún comando específico.
$ git help comando
El comando git init
inicializa el proyecto. Indica a Git que este es el "Working Directory", que este directorio tiene el código que habrá
de guardarse en el repositorio. Debe usar este comando cada que comienza un proyecto nuevo.
$ git init
El comando git stauts
muestra el estado actual del repositorio.
$ git status
Añadir archivos al Staging Area
Para añadir archivos al Staging Area se usa el comando git add. Puede agregarse un archivo o varios a la vez.
El siguiente comando añade el archivo file.txt al staging:
$ git add file.txt
El siguiente comando añade todos los archivos en el directorio actual:
$ git add -A
Añadir archivos al Repository
Para añadir archivos al Repository se utiliza el comando git commit
. Este comando permite agregar un mensaje, el cual nos permite
especificar el cambio que hemos realizado en el código. Este mensaje es para nosotros mismos como desarrolladores, ya que en un futuro que
consultemos los cambios, podremos saber con precisión que cambio fue realizado en esa etapa del desarrollo del código. Por esa razón se recomienda
que el mensaje sea claro y conciso.
$ git commit -m "Mensaje claro y conciso que describe el cambio en el código"
Una vez que se haga algún cambio en el código o se agreguen archivos, haga un git status
y este indicará que el código en el Working Directory
difiere del que se encientra en el Repository. Este será el momento para hacer un git add
para los archivos modificados y un
git commit
nuevamente.
Es posible utilizar el comando git commit
sin más argumentos. Esto llevará los cambios del Staging Area al Repository, pero dado que no se especificó un
mensaje, se abrirá el editor por defecto en el sistema (vi
en los sistemas *NIX) para escribir el mensaje correspondiente para el commit.
Bitácora de Cambios
Uno de las grandes ventajas de utiliar Git es que guarda un registro de los cambios y un snapshot
del código en el momento del commit
.
Para ver el registro se utiliza el comando git log
.
$ git log
Ver estados anteriores del código
El comando git checkout
permite ver una versión específica del código para la ocurrencia de un commit específico. Se dice que este comando
permite "viajar en el tiempo" del código. Este comando requiere de un identificador SHA (Secure Hash Algorithm) del commit, el cual podemos ver
en la bitácora. Por ejemplo:
$ git checkout [<commit>]
Este comando llevará el código al estado en el que se encontraba al momento de haber hecho el coommit correspondiente al ID. De esta forma podremos examinar el
código en ese momento y llevar a cabo cualquier acción que deseemos con el.
Si desearamos viajar nuevamente a otro estado anterior del código podríamos hacerlo con git chechout ID
, de acuerdo al ID específico a donde quisieramos
ir. Por otro lado, si quisieramos regresar al último commit realizado (antes del primer git checkout
), basta con escribir:
$ git checkout master
Regresar a estados anteriores del código.
Una de las funcionalidades de Git es que permite ver y regresar a estados anteriores del código. Esto es útil por si algún commit tuviera un error peligroso o
cambios no deseados. Utilice esta instrucción con precaución.
Existen cinco tipos de reset
: soft
, mixed
, hard
, merge
y keep
. A continuación se
describne los más comunes:
-
soft: Mantiene los cambios de nuestros archivos intacto, simplemente es para que Git tenga presente que está en otro commit.
-
mixed: Mantiene nuestros archivos, pero limpia el index de git de las cambios realizadas.
-
hard: Elimina todo los cambios que tenemos en nuestros archivos para dejarlo exactamente igual que en el repositorio.
GitHub
GitHub es una plataforma de desarrollo colaborativo para alojar proyectos utilizando el sistema de control
de versiones Git. Utiliza el framework Ruby on Rails por GitHub, Inc. (anteriormente conocida como Logical Awesome).
GitHub es una plataforma de desarrollo inspirada en su forma de trabajo. Usted puede almacenar y revisar código, administrar proyectos
y construir software desde código abierto hasta empresarial junto a millones de desarrolladores.
Desde enero de 2010, opera bajo el nombre de GitHub, Inc. El código se almacena de forma pública, aunque también se puede hacer de forma privada,
creando una cuenta de pago.
GitHub es un sitio que crea una comunidad de desarrolladores, se puede decir que es la red social de los desarrolladores.
MiniTutorial Git + GitHub
Clonar un repositorio
Si deseamos descargar todos los archivos de código de un proyecto que se encuentra en GitHub, podemos hacer una copia a través del comando:
$ git clone URL
Este comando es útil si nos interesa obtener el código y no necesariamente hacer contribuciones.
Manipular repositorios remotos
Para vincular un proyecto de código local a un repositorio remoto en GitHub se utiliza el comando git remote.
$ git remote add origin URL_Repo
Este comando establecerá un vinculo entre el código del repositorio local origin con el repositorio remoto que se encuentra en GitHub a
través de URL_Repo.
El siguiente comando mostrará si existe un vinculo entre el repositorio local y uno remoto:
$ git remote -v
El siguiente comando permite eliminar el vinculo que exista entre el repositorio local y remoto:
$ git remote remove origin
Se puede comprobar el efecto de estas operaciones con el comando git remote -v
.
El comando git push
permite subir el código que se encuentra en el repositorio local al repositorio remoto en GitHub.
$ git push origin master
El comando solicitará el username y password de la cuenta de GitHib donde se encuentra el repositorio remoto.
El comando git push origin master
puede ejecutarse cada vez que se hagan cambios en el código, de manera que los repositorios local y
remoto se encuentren en sincronía.
Tenga en cuenta que este comando sincroniza la rama master del repositorio local con el repositorio remoto en GitHub.