log - git remove tag
git: diff entre archivo en repos y origen local (3)
Para ver las diferencias desde el archivo remoto al archivo local:
git diff remotename/branchname:remote/path/file1.txt local/path/file1.txt
Para ver las diferencias en la otra dirección:
git diff HEAD:local/path/file1.txt remotename/branchname:remote/path/file1.txt
Básicamente puedes diferenciar dos archivos en cualquier lugar usando esta notación:
git diff ref1:path/to/file1 ref2:path/to/file2
Como de costumbre, ref1
y ref2
podrían ser nombres de rama, remotename / branchname, commit SHAs, etc.
Quiero encontrar las diferencias entre un archivo que tengo en mi repositorio local versus lo que está en el maestro de origen.
Sé que hay git diff, sin embargo, solo quiero aislarlo en este archivo en particular.
Para simplificar digamos que los archivos se llaman file1.txt y tiene una ruta de archivo local = [ruta_local] y en el origen tiene filepath = [ruta_remota].
¿Cuál sería el comando git que necesito escribir?
EDITAR: Gracias a todos por su aporte, ha sido muy perspicaz. Para aquellos que están usando Eclipse (que yo soy y debería haber indicado antes) descubrí que puedes simplemente hacer clic derecho -> Comparar con -> Sucursal, Etiqueta o Referencia -> seleccionar la versión apropiada y listo.
para eso escribió un script bash
#set -x
branchname=`git branch | grep -F ''*'' | awk ''{print $2}''`
echo $branchname
git fetch origin ${branchname}
for file in `git status | awk ''{if ($1 == "modified:") print $2;}''`
do
echo "PLEASE CHECK OUT GIT DIFF FOR "$file
git difftool FETCH_HEAD $file ;
done
en la secuencia de comandos anterior busco la rama principal remota (no es necesaria su rama principal CUALQUIER rama) para FETCH_HEAD hacer una lista de mi archivo modificado solamente y comparar archivos modificados a git difftool
aquí muchos difftool compatibles con git, configuro ''Meld Diff Viewer'' para una buena comparación de GUI. Desde el script anterior tengo conocimiento previo de los cambios realizados por otros equipos en el mismo archivo, antes de seguir git stages untrack -> stage -> commit que me ayudan a evitar una resolución innecesaria fusionar conflictos con un equipo remoto o crear una nueva rama local y comparar y se fusionan en la rama principal.
Si [remote-path]
y [local-path]
son iguales, puede hacer
$ git fetch origin master
$ git diff origin/master -- [local-path]
Nota 1: El segundo comando anterior se comparará con la rama de seguimiento remoto almacenada localmente. El comando de búsqueda es necesario para actualizar la rama de seguimiento remoto para que esté sincronizado con el contenido del servidor remoto. Alternativamente, puedes hacer
$ git diff master:<path-or-file-name>
Nota 2: el master
puede reemplazarse en los ejemplos anteriores con cualquier nombre de sucursal