
Git es el sistema de control de versiones más utilizado y de código abierto. Este sistema de control de versiones tiene entre sus ventajas más destacadas, su seguridad, rendimiento y flexibilidad para poder realizar una distribución del código entre los repositorios de los desarrolladores y poder ver todos los cambios hechos por él o por sus compañeros/as consultando el historial.
Existen también algunas interfaces visuales más amigables para los usuarios que no estén acostumbrados al manejo de la consola.
A continuación, expondré un conjunto de comandos para iniciarte en el mundillo de git, utilizaremos para ello Git Bash, que se verá de la siguiente forma:
Configura Git
Una vez instalado Git recuerda que necesitas un repositorio donde trabajar, donde aplicaremos los comandos dentro de dicho repositorio, que será nuestra carpeta de trabajo.
Comando: git config
Este comando solo es necesario configurarlo al principio una vez instalemos Git, para configurar nuestro nombre de usuario y la dirección de correo que tengamos, puedes configurarlo tanto localmente como globalmente, son los siguientes:
git config –global user.name »Tu nombre de usuario»
git config –global user.email »tu dirección de correo»
Comando: git init
Inicia un nuevo repositorio en local:
git init »nombre_del_repositorio»
Comando: git clone
Inicia un repositorio y baja el contenido creado de otro repositorio remotamente, como puede ser los repositorios de GitHub por ejemplo, usas el comando para clonarte dicho repositorio y luego poder utilizarlo localmente.
git clone »URL del repositorio a clonar»
Como Git maneja los archivos
Tenemos que tener en cuenta que para que nuestros cambios se apliquen en nuestro repositorio remoto, como puede ser algún repositorio de GitHub, Bitbucket… etc. Estos no se guardan remotamente automáticamente, debemos ir manejando la situación e ir controlando los archivos que subimos con que cambios, con los siguientes comandos que vamos a ver a continuación
Comando: git add
Una vez hemos trabajado en nuestro directorio, git nos detecta los cambios que se han aplicado, podemos ir añadiendo los archivos que queramos subir o directamente subir todos los cambios que detecte en el directorio, de la siguiente forma:
git add [opciones] [»fichero_a_subir] [fichero_a _subir2»]… etc (Para elegir archivos)
git add * (Para todos los archivos)
Comando: git commit
Una vez utilizado el comando anterior y tengamos los archivos “preparados” para subir utilizaremos el siguiente comando para confirmar dichos cambios.
git commit [opciones] [-m <”Mensaje de la subida”>] Ten en cuenta, que el mensaje del commit tiene que ser descriptivo con lo que estas subiendo, como por ejemplo una nueva funcionalidad de tu app, un error solucionado…etc
Comando: git log
Cuando tengamos cambios podemos usar el siguiente comando para ver el historial de los mismos, puede ser útil por si necesitamos volver a un commit en concreto saber quién lo hizo, la fecha y el nombre descriptivo del commit con el hash de este correspondiente
git log
Comando: git diff
Diferencia entre los commits que pongamos, utilizando el hash
git diff »hash del commint elegido» »hash del commit elegido 2»
Podemos utilizarlo tambien para ver los cambios del commit aun no subidos al repositorio remoto, utilizando la paraba HEAD hacemos referencia a los commits en local
Comando: git reset
Deshace los cambios locales, utilizamos el hash del commit para volver a alguno en concreto, hay que tener cuidado con este comando ya que borrará todos los cambios hechos hasta el commit indicado.
git reset »commit a volver»
Comando: git revert
Deshace de forma segura un cambio en el historial de confirmaciones.
git revert »commit a deshacer»
Comando: git tag.
Se utiliza para marcar un commit en el historial con una etiqueta, como por ejemplo indicar la versión de los commits (v.1.0.0), un hotfix (HF20..), etc.
git tag [opciones] [»nombre etiqueta»] [»hast commit elegido»] [»mensaje etiqueta»]
Comandos GIT para manejo de repositorios remotos
Tenemos la posibilidad de trabajar con nuestros compañeros, git nos concede el poder utilizarlo remotamente y hacer cambios en dicho repositorio en la nube, donde se puede llevar a cabo grandes proyectos entre los desarrolladores.
Comando: git remote
Comando para conectar al repositorio remoto por le cual nos comunicamos por el repositorio local.
git remote add »nombre repositorio» »URL repositorio remoto»
git remote show »nombre repositorio»
Comando: git Branch
Las ramas permiten el trabajo en paralelo sobre diferentes partes del código para añadir funciones, realizar nuevas versiones o corregir errores.
La rama principal del repositorio es la master.
Este comando nos permite listar las ramas disponibles en nuestro repositorio, para crear una nueva habrá que especificar el nombre de ésta.
git branch [opciones] [»nombre rama»] [»commit inicial de la rama»]
Comando: git checkout
Se utiliza para moverse en las diferentes ramas disponibles en nuestro repositorio para poder situarnos en dichas ramas y poder efectuar cambios en ellas.
git checkout nombre_rama
Comando: git status
Se usa para comprobar los cambios de la rama (como puede ser un cambio mínimo en un archivo) en la que nos encontramos donde esos cambios deben ser confirmados o rechazados.
git status
Comando: git merge
Para combinar (fusionar) una o varias ramas dentro de la rama que tienes activa.
git merge [»nombre rama»] [–no-commit]
Comando: git rebase
Si desea fusionar las ramas como el comando visto anteriormente, pero quieres mantener el historial de dicha rama. Suele ser la opción más preferida.
git rebase [»nombre rama»]
Comando: git push
Una vez hemos hecho todos los cambios deseados, para sincronizar los cambios de nuestro repositorio local al remoto utilizamos el siguiente comando.
git push [ »nombre repositorio» »nombre rama»]
Comando: git pull
Para “bajar” los cambios del repositorio remoto a nuestro repositorio en local.
git pull »nombre repositorio/nombre rama»
Git, tu herramienta principal para la gestión de proyectos
Git está preparado para todo tipo de proyectos, desde uno pequeño hasta uno con grandes dimensiones, los comandos que he mostrado no son todos los que proporciona git; Tiene muchas mas funcionalidades, pero si son los mas básicos y los mas utilizados para poder empezar con él.
Os invito a probarlo en vuestros proyectos.. no os arrepentiréis ;)