Artículo original escrito por Cem Eygi
Artículo original: 10 Git Commands Every Developer Should Know
Traducido y adaptado por andres-torres

Git es una parte importante de la programación diaria, (especialmente si se trabaja con un equipo) y se usa ampliamente en la industria del software. Dado que hay muchos comandos diferentes que puede usar, dominar Git lleva tiempo.

Sin embargo, hay algunos comandos que se usan con más frecuencia (algunos a diario). Gracias a ello, en esta publicación compartiré y explicaré los 10 comandos Git más utilizados que todo desarrollador debe conocer.

Nota: Para comprender este artículo, debes conocer los conceptos básicos de Git.

1. Git clone

Git clone es un comando para descargar el código fuente existente desde un repositorio remoto (como Github, por ejemplo). En otras palabras, Git clone básicamente hace una copia idéntica de la última versión de un proyecto en un repositorio y la guarda en su computadora.

Hay un par de formas de descargar el código fuente, pero sobre todo prefiero él clone con https:

git clone https://name-of-the-repository-link

Por ejemplo, si queremos descargar un proyecto de Github, todo lo que tenemos que hacer es hacer clic en el botón verde (clonar o descargar), copiar la URL en el cuadro y pegarlo después del comando git clone que he mostrado en la esquina superior derecha.

image-1
Código de origen, ejemplo de Git Clone en Github.

Esto hará una copia del proyecto en tu espacio de trabajo local para que puedas comenzar a trabajar con él.

2. Git branch

Las ramas son muy importantes en el mundo de git. Mediante el uso de ramas, varios desarrolladores pueden trabajar en paralelo en el mismo proyecto simultáneamente. Podemos usar el comando git branch para crear, enumerar y eliminar ramas. Creando una nueva rama:

git branch <branch-name>

Este comando creará una rama localmente. Para insertar la nueva rama en el repositorio remoto, debes usar el siguiente comando:

git push -u <remote> <branch-name>

Para ver las ramas:

git branch or git branch --list

Para borrar las ramas:

git branch -d <branch-name>

3. Git checkout

Este es también uno de los comandos Git más utilizados. Para trabajar en una rama, primero debe cambiarse a ella. Usamos git checkout principalmente para cambiar de una rama a otra. También podemos usarlo para verificar archivos y confirmaciones.

git checkout <name-of-your-branch>

Hay algunos pasos que debes seguir para cambiar con éxito entre ramas:  

  • Los cambios en tu rama actual deben confirmarse o guardarse antes de cambiar.
  • La rama que deseas verificar debe existir en tu local.

También hay un comando de acceso directo que te permite crear y cambiar a una rama al mismo tiempo:

git checkout -b <name-of-your-branch>

Este comando crea una nueva rama en su local (-b significa rama) y marca la rama como nueva justo después de que se haya creado, si observas bien, el cambio se encuentra en -b).

4. Git status

El comando de estado de Git nos brinda toda la información necesaria sobre la rama actual.

git status

Podemos recopilar información acerca de:  

  • Si la rama actual está actualizada.    
  • Si hay algo que necesita un commit, un add, o borrarse.  
  • Si hay archivos preparados, sin preparar o sin seguimiento    
  • Si hay archivos creados, modificados o eliminados
image-2
Con Git status obtenemos información acerca de las ramas y los archivos.

5. Git add

Cuando creamos, modificamos o eliminamos un archivo, estos cambios ocurrirán en nuestro local y no se incluirán en la próxima confirmación (a menos que cambiemos las configuraciones).

Necesitamos usar el comando git add para incluir los cambios de un archivo(s) en nuestro próximo commit.

Para agregar un solo archivo:

git add <file>

Para añadir todo de una vez:

git add -A

Cuando vimos la captura de pantalla anterior en la cuarta sección, vimos que hay nombres de archivos que se encontraban en rojo, lo que significa que son archivos sin preparar. Los archivos no preparados no se incluirán en sus confirmaciones. Para incluirlos, necesitamos usar git add:

image-3
Los archivos con verde ahora están respaldados con git add

Importante: el comando git add no cambia el repositorio y los cambios no se guardan hasta que usamos git commit.

6. Git commit

Este es quizás el comando más utilizado de Git. Una vez que llegamos a cierto punto en el desarrollo, queremos guardar nuestros cambios (tal vez después de una tarea o problema específico).

Git commit es como establecer un punto de control en el proceso de desarrollo al que puede volver más tarde si es necesario. También necesitamos escribir un mensaje corto para explicar lo que hemos desarrollado o cambiado en el código fuente.

git commit -m "commit message"

Importante: Git commit guarda tus cambios solo localmente.

7. Git push

Después de confirmar los cambios (con git commit), lo siguiente que hay que hacer es enviar estos cambios al servidor remoto. Git push sube tus confirmaciones al repositorio remoto.

git push <remote> <branch-name>

Sin embargo, si tu rama se creó recientemente, también debes cargar la rama con el siguiente comando:

git push --set-upstream <remote> <name-of-your-branch>

O bien:

git push -u origin <branch_name>

Importante: Git push solo carga los cambios que están confirmados.

8. Git pull

El comando git pull se usa para obtener actualizaciones del repositorio remoto. Este comando es una combinación de git fetch y git merge, lo que significa que, cuando usamos git pull, obtienes las actualizaciones del repositorio remoto (git fetch) e inmediatamente aplica los últimos cambios en su local (git merge). (En simples palabras, sirve para traer el repositorio remoto a tu repositorio local).

git pull <remote>

Esta operación puede causar conflictos que debes resolver manualmente.

9. Git revert

A veces necesitamos deshacer los cambios que hemos hecho. Hay varias formas de deshacer nuestros cambios de forma local o remota (depende de lo que necesitemos), pero debemos usar estos comandos con cuidado para evitar eliminaciones no deseadas.

Una forma más segura de deshacer nuestras confirmaciones es usando git revert. Para ver nuestro historial de confirmaciones, primero debemos usar git log -- oneline:

image-4
Historia de commits de la rama master

Luego, solo necesitamos especificar el código hash junto a nuestro commit que nos gustaría deshacer:

git revert 3321844

Después de esto, verás una pantalla como la siguiente: simplemente presiona shift + q para salir:

image-5

El comando Git revert deshará la confirmación dada, pero creará una nueva confirmación sin eliminar la anterior:

image-6
Nuevo commit "revert".

La ventaja de usar git revert es que no toca el historial de commits. Esto significa que aún puede ver todas las confirmaciones en su historial, incluso las revertidas. Otra medida de seguridad aquí es que todo sucede en nuestro sistema local a menos que los insertemos en el repositorio remoto. Es por eso que git revert es más seguro de usar y es la forma preferida de deshacer nuestros commits.

10. Git merge

Cuando hayas completado el desarrollo en tu rama y todo funcione bien, el paso final es fusionar la rama con la rama principal (dev o master branch). Esto se hace con el comando git merge.

Git merge básicamente integra su rama de características (feature branch) con todas sus confirmaciones en la rama dev (o master). Es importante recordar que primero debes estar en la rama específica que deseas fusionar con tu rama de características.

Por ejemplo, cuando desees fusionar tu rama de características en la rama dev:

Primero debes cambiar a la rama dev:

git checkout dev

Antes de hacer la fusión, debes actualizar la rama de desarrollo local:

git fetch

Finalmente, puedes hacer la fusión:

git merge <branch-name>

Sugerencia: asegúrate que tu rama de desarrollo tenga la última versión antes de fusionar las ramas, de lo contrario, puede enfrentar conflictos u otros problemas no deseados.

Estos son mis 10 comandos git más utilizados que encuentro en mi programación diaria. Hay muchas más cosas que aprender sobre Git y las explicaré más adelante en artículos separados.

Si quieres aprender más sobre desarrollo web, ¡no dudes en seguirme en Youtube! ¡Gracias por leer!