Quiero encontrar las diferencias entre un archivo que tengo en mi repositorio local y lo que hay en el archivo origin master
.
Sé que hay git diff
, sin embargo, solo quiero aislarlo en este archivo en particular.
Por simplicidad, digamos que el archivo se llama file1.txt
y tiene una ruta de archivo local = [local_path]
y en el origen tiene filepath = [remote-path]
.
¿Cuál sería el comando git que necesito escribir?
EDITAR: Gracias a todos por su aporte, ha sido muy perspicaz. Para aquellos que usan Eclipse (que soy y debería haber dicho antes), descubrí que puede hacer clic con el botón derecho -> Comparar con -> Rama, etiqueta o referencia -> seleccionar la versión adecuada y listo.
Respuestas:
Si
[remote-path]
y[local-path]
son lo mismo, puedes hacerNota 1: El segundo comando anterior se comparará con la rama de seguimiento remoto almacenada localmente. Se requiere el comando fetch para actualizar la rama de seguimiento remoto para que esté sincronizada con el contenido del servidor remoto. Alternativamente, solo puedes hacer
Nota 2:
master
se puede reemplazar en los ejemplos anteriores con cualquier nombre de sucursalfuente
git diff master:README.md -- README.md
git diff origin/master -- README.md
git fetch master
lugargit fetch .
(origen / maestro tampoco funcionó) Pero el resto funcionó bien.git fetch **origin**
.Para ver las diferencias que van del archivo remoto al archivo local:
Para ver las diferencias en la otra dirección:
Básicamente, puede diferenciar dos archivos en cualquier lugar utilizando esta notación:
Como de costumbre,
ref1
yref2
podrían ser nombres de sucursal, nombre remoto / nombre de sucursal, confirmar SHA, etc.fuente
Para comparar el repositorio local con el remoto, simplemente use la siguiente sintaxis:
fuente
Para eso escribí un script bash:
En la secuencia de comandos anterior, busco la rama principal remota (no es necesariamente su rama maestra CUALQUIER rama)
FETCH_HEAD
, luego hago una lista de mi archivo modificado solo y comparo los archivos modificadosgit difftool
.Hay muchos
difftool
compatibles con git, configuréMeld Diff Viewer
para una buena comparación de GUI.De la secuencia de comandos anterior, tengo conocimiento previo de los cambios realizados por otros equipos en el mismo archivo, antes de seguir las etapas de git
untrack-->staged-->commit
que me ayudan a evitar una resolución innecesaria, fusionar conflictos con el equipo remoto o hacer una nueva sucursal local y comparar y fusionar en la sucursal principal.fuente
Intenté un par de soluciones, pero creo que es fácil de esta manera (estás en la carpeta local):
Luego comparaste git local y el último número de confirmación de git remoto ...
fuente
A continuación se muestra la respuesta completa a la pregunta original que hablaba sobre una posible ruta diferente en local y remoto
git fetch origin
git diff master -- [local-path] origin/master -- [remote-path]
Suponiendo que la ruta local es docs / file1.txt y la ruta remota es docs2 / file1.txt, use
git diff master -- docs/file1.txt origin/master -- docs2/file1.txt
Esto está adaptado de la página de ayuda de GitHub aquí y la respuesta de Code-Apprentice arriba
fuente