¿Cómo comparar el contenido de dos repositorios usando Git?
GitGitHub
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.
- Para comparar los dos repositorios, debemos agregar el repositorio remoto
bal repositorio locala:
git remote add -f b <url-repositorio-b>
Nota: El comando
git remote addnos permite agregar un repositorio remoto, el parámetro-fnos permite forzar la actualización del repositorio remoto, y “b” es el alias para el repositorio remoto.
- A continuación, es recomendable actualizar la información de los repositorios remotos localmente:
git remote update
- Finalmente, podemos comparar las diferencias entre las dos ramas
mainde los dos repositorios:
git diff main remotes/b/main
Nota: Utilizamos el comando
git diffpara comparar las ramasmainde los dos repositorios, y el parámetroremotes/b/mainpara indicar que queremos comparar la ramamaindel repositorio remotob. El primer parámetromainindica que queremos comparar la ramamaindel repositorio locala.
- Para comparar un archivo en específico, podemos utilizar el comando
git diffde 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
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>
Por ejemplo, si queremos comparar la rama master con la rama develop podemos ejecutar el siguiente comando:
git diff master develop
Comparar dos commits
git diff <commit1> <commit2>
Por ejemplo, si queremos comparar el commit a1b2c3 con el commit d4e5f6 podemos ejecutar el siguiente comando:
git diff a1b2c3 d4e5f6
Comparar dos archivos
git diff <archivo1> <archivo2>
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
Comparar dos commits de dos ramas
git diff <rama1>:<commit1> <rama2>:<commit2>
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
Comparar dos commits de dos archivos
git diff <commit1>:<archivo1> <commit2>:<archivo2>
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
Comparar dos commits de dos ramas de dos archivos
git diff <rama1>:<commit1>:<archivo1> <rama2>:<commit2>:<archivo2>
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