DEV Community

Cover image for ¿Cómo comparar el contenido de dos repositorios usando Git?
Jordi Ayala
Jordi Ayala

Posted on • Edited on • Originally published at asjordi.dev

2

¿Cómo comparar el contenido de dos repositorios usando Git?

Cuando estamos trabajando con Git, a veces nos encontramos con la necesidad de comparar el contenido de dos repositorios. Por ejemplo, para comparar el contenido de dos ramas, dos commits o dos archivos.

En este post vamos a ver como comparar el contenido de dos repositorios usando Git. Para ello vamos a utilizar el comando git diff.

¿Qué es git diff?

git diff es un comando que nos permite comparar el contenido de dos repositorios. Por lo tanto, permite comparar el contenido de dos ramas, dos commits o dos archivos, o su combinación.

Comparar dos repositorios

Para este ejemplo se tiene un repositorio a con una rama main de manera local, se desea comparar con un repositorio b con una rama main de manera remota.

1- Para comparar los dos repositorios, debemos agregar el repositorio remoto b al repositorio local a:

git remote add -f b <url-repositorio-b>
Enter fullscreen mode Exit fullscreen mode

Nota: El comando git remote add nos permite agregar un repositorio remoto, el parámetro -f nos permite forzar la actualización del repositorio remoto, y "b" es el alias para el repositorio remoto.

2- A continuación, es recomendable actualizar la información de los repositorios remotos localmente:

git remote update
Enter fullscreen mode Exit fullscreen mode

3- Finalmente, podemos comparar las diferencias entre las dos ramas main de los dos repositorios:

git diff main remotes/b/main
Enter fullscreen mode Exit fullscreen mode

Nota: Utilizamos el comando git diff para comparar las ramas main de los dos repositorios, y el parámetro remotes/b/main para indicar que queremos comparar la rama main del repositorio remoto b. El primer parámetro main indica que queremos comparar la rama main del repositorio local a.

4- Para comparar un archivo en específico, podemos utilizar el comando git diff de la siguiente manera:

git diff main remotes/b/main <archivo>

# Por ejemplo, si queremos comparar el archivo README.md
# git diff main remotes/b/main README.md
Enter fullscreen mode Exit fullscreen mode

En general estos son los pasos necesarios para comparar el contenido de dos repositorios, considerando que uno de ellos se encuentra de manera local y el otro de manera remota.

A continuación se muestran algunos ejemplos de como utilizar el comando git diff.

Comparar dos ramas

git diff <rama1> <rama2>
Enter fullscreen mode Exit fullscreen mode

Por ejemplo, si queremos comparar la rama master con la rama develop podemos ejecutar el siguiente comando:

git diff master develop
Enter fullscreen mode Exit fullscreen mode

Comparar dos commits

git diff <commit1> <commit2>
Enter fullscreen mode Exit fullscreen mode

Por ejemplo, si queremos comparar el commit a1b2c3 con el commit d4e5f6 podemos ejecutar el siguiente comando:

git diff a1b2c3 d4e5f6
Enter fullscreen mode Exit fullscreen mode

Comparar dos archivos

git diff <archivo1> <archivo2>
Enter fullscreen mode Exit fullscreen mode

Por ejemplo, si queremos comparar el archivo main.js con el archivo utils.js podemos ejecutar el siguiente comando:

git diff main.js utils.js
Enter fullscreen mode Exit fullscreen mode

Comparar dos commits de dos ramas

git diff <rama1>:<commit1> <rama2>:<commit2>
Enter fullscreen mode Exit fullscreen mode

Por ejemplo, si queremos comparar el commit a1b2c3 de la rama master con el commit d4e5f6 de la rama develop podemos ejecutar el siguiente comando:

git diff master:a1b2c3 develop:d4e5f6
Enter fullscreen mode Exit fullscreen mode

Comparar dos commits de dos archivos

git diff <commit1>:<archivo1> <commit2>:<archivo2>
Enter fullscreen mode Exit fullscreen mode

Por ejemplo, si queremos comparar el commit a1b2c3 del archivo index.html con el commit d4e5f6 del archivo style.css podemos ejecutar el siguiente comando:

git diff a1b2c3:index.html d4e5f6:style.css
Enter fullscreen mode Exit fullscreen mode

Comparar dos commits de dos ramas de dos archivos

git diff <rama1>:<commit1>:<archivo1> <rama2>:<commit2>:<archivo2>
Enter fullscreen mode Exit fullscreen mode

Por ejemplo, si queremos comparar el commit a1b2c3 del archivo index.html de la rama master con el commit d4e5f6 del archivo style.css de la rama develop podemos ejecutar el siguiente comando:

git diff master:a1b2c3:index.html develop:d4e5f6:style.css
Enter fullscreen mode Exit fullscreen mode

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

The Most Contextual AI Development Assistant

Pieces.app image

Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.

👥 Ideal for solo developers, teams, and cross-company projects

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay