Saltar al contenido

git diff entre repositorio remoto y local

La guía o código que verás en este post es la solución más sencilla y válida que encontramos a esta duda o dilema.

Solución:

Para comparar un directorio de trabajo local con una sucursal remota, por ejemplo origen/maestro:

  1. git fetch origin master

    Esto le dice a git que obtenga la rama llamada ‘maestro’ del control remoto llamado ‘origen’. git fetch será no afectar los archivos en su directorio de trabajo; no intenta fusionar cambios como git pull hace.

  2. git diff --summary FETCH_HEAD

    Cuando se recupera la rama remota, se puede hacer referencia localmente a través de FETCH_HEAD. El comando anterior le dice a git que compare los archivos del directorio de trabajo con el HEAD de la rama FETCHed e informe los resultados en formato de resumen. El formato de resumen brinda una descripción general de los cambios, generalmente una buena forma de comenzar. Si quieres un poco más de información, usa --stat en vez de --summary.

  3. git diff FETCH_HEAD -- mydir/myfile.js

    Si desea ver los cambios en un archivo específico, por ejemplo myfile.js, omita el --summary y haga referencia al archivo que desea (o árbol).

Como se ha señalado, origin hace referencia al repositorio remoto y master hace referencia a la rama dentro de ese repositorio. Por defecto, git usa el nombre origin para un control remoto, así que si lo hace git clone por defecto llamará a ese control remoto origin. Usar git remote -v Ver qué origin puntos a.

Es posible que tenga más de un control remoto. Por ejemplo, si “bifurca” un proyecto en GitHub, normalmente necesita un control remoto que haga referencia al proyecto original, así como a su propia bifurcación. Di que creas https://github.com/yourusername/someproject como un tenedor de https://github.com/theoriginal/someproject. Por convención, nombraría el control remoto al repositorio original upstreammientras que tu propio tenedor sería origin. Si realiza cambios en su bifurcación en GitHub y desea obtener esos cambios localmente, usaría git fetch origin master. Si el upstream ha realizado cambios que necesita sincronizar localmente antes de realizar más cambios, usaría git fetch upstream master.

no hagas un pull :

  • hacer un fetch (la sintaxis es la misma que git pullpero no se fusiona automáticamente)
  • hacer un diff entre su sucursal de destino y la otra sucursal
  • entonces haz un merge si tu quieres

Según el comentario del OP de que parte de su “problema era Windows vs. Unix LFs”, esto debería ayudar:

Puede usar el siguiente comando de configuración para decirle a git-diff que ignore la diferencia del código eol.

git config --global core.whitespace cr-at-eol

Te mostramos las reseñas y valoraciones de los lectores

Recuerda que puedes añadir una puntuación verdadera .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *