![¿Está relacionado "git diff" con "diff"?](https://rvso.com/image/109224/%C2%BFEst%C3%A1%20relacionado%20%22git%20diff%22%20con%20%22diff%22%3F.png)
Está git diff
relacionado con diff
?
¿
git diff
Se implementa en base adiff
?Esla sintaxis de la línea de comando de
git diff
Similar ala dediff
? ¿Aprender uno ayuda mucho a utilizar el otro?¿Sus archivos de salida siguen el mismo formato? ¿Pueden ser utilizados por
git patch
ypatch
? (¿Existegit patch
? ¿Cómo se relaciona conpatch
?)
Gracias.
Respuesta1
El formato de archivo es interoperable. Git utiliza el mejor formato, diff -u
. También lo amplía para representar tipos adicionales de cambios.
El equivalente a patch
es git apply
. Organiza los cambios en el índice y los aplica al árbol de trabajo.
Recuerdo git apply
haber sido más estricto que patch
, aunque la documentación de referencia no parece hacer una comparación explícita. Menciona varias pruebas/errores que se pueden habilitar o deshabilitar.
La documentación de referencia también sugiere que podría usarse como "un reemplazo para el parche GNU", incluso fuera de un repositorio git, si usa una determinada opción.
Respuesta2
git-diff ofrece más funciones que diff y no creo que los parches de salida sean interoperables (sin algunas opciones adicionales), ya que diff producirá líneas como
diff -ruNa dir1/file1.txt dir2/file1.txt
mientras que git-diff produce líneas como
diff --git a/dir1/file1.txt b/dir2/file1.txt
(observe el prefijo de origen y destino, que se puede alternar con --no-prefix
y diferentes opciones)
Aquí hay algunas características adicionales de git-diff:
Puede grabar archivos movidos/renombrados, mientrasla diferencia no puede
Utiliza el modo recursivo, diferencias unificadas y maneja archivos nuevos/eliminados de forma predeterminada (
diff -ruN
)Admite diferentes algoritmos para encontrar diferencias.
Admite parches binarios de git que codifican datos binarios como ASCII