Esta pregunta requiere "números de línea", si no le importan los números de línea en la salida, vea esta pregunta y responda .
Básicamente, no quiero ver el contenido modificado, solo los nombres de archivo y los números de línea.
Esta pregunta requiere "números de línea", si no le importan los números de línea en la salida, vea esta pregunta y responda .
Básicamente, no quiero ver el contenido modificado, solo los nombres de archivo y los números de línea.
Respuestas:
Nota: si solo está buscando los nombres de los archivos modificados ( sin los números de línea de las líneas que se modificaron), es fácil, haga clic en este enlace para obtener otra respuesta aquí .
No hay una opción integrada para esto (y tampoco creo que sea tan útil), pero es posible hacerlo en git, con la ayuda de un script "externo".
Aquí hay uno bastante malo; dependerá de usted arreglar la salida de la manera que le gustaría.
Para obtener detalles sobre "diff externo", consulte la descripción
GIT_EXTERNAL_DIFF
en la página del manual de git (alrededor de la línea 700, muy cerca del final).fuente
| grep -o '^[0-9]*'
le da solo números, suponiendo que no le importe el lado derecho.--diff-filter=...
donde la...
parte es el tipo de cambios que desea ver:M
para modificado,A
para agregado,D
para eliminado y otros según lagit diff
documentación.Tan fácil:
¡Sal y difunde!
fuente
git diff --name-only master..HEAD
¿Números de línea como el número de líneas cambiadas o los números de línea reales que contienen los cambios? Si desea el número de líneas cambiadas, use
git diff --stat
. Esto te da una pantalla como esta:No hay opción para obtener los números de línea de los cambios en sí.
fuente
git diff master --compact-summary
Salida es:
Esto es exactamente lo que necesitas. Mismo formato que cuando realiza commit o extrae nuevos commits desde remoto.
PD: Eso está conectado que nadie respondió de esta manera.
fuente
1) Mi favorito:
Antecede el estado del archivo, por ejemplo:
2) Si quieres estadísticas, entonces:
mostrará algo como:
3) Finalmente, si realmente solo quieres los nombres de archivo:
Simplemente mostrará:
fuente
Muestra los nombres de archivo y la cantidad / nubmer de líneas que cambiaron en cada archivo entre ahora y la confirmación especificada:
fuente
Sé que esta es una pregunta antigua, pero en Windows, filtra la salida de git a los archivos y cambia los números de línea:
(git diff -p --stat) | findstr "@@ --git"
Para extraer los archivos y las líneas cambiadas de eso es un poco más trabajo:
for /f "tokens=3,4* delims=-+ " %f in ('^(git diff -p --stat .^) ^| findstr ^"@@ --git^"') do @echo %f
fuente
La salida más limpia, es decir, solo nombres / rutas de archivo, viene con
HTH
fuente
Encendido
git version 2.17.1
, no hay una bandera incorporada para lograr este propósito.Aquí hay un comando de ejemplo para filtrar el nombre de archivo y los números de línea de un diff unificado:
Por ejemplo, el diff unificado:
Resultará en:
Para hacer coincidir la salida de comandos en resultados comunes de coincidencia grep:
grep -Po '^diff --cc \K.*|^@@@( -[0-9]+,[0-9]+){2} \+\K[0-9]+(?=(,[0-9]+)? )
: Coincide con el nombre de archivo dediff --cc <filename>
OR coincide con el número de línea de@@@ <from-file-range> <from-file-range> <to-file-range>
OR coincide con el texto restante después@@@
.sed -e '0~3{s/ @@@[ ]\?//}'
: Eliminar@@@[ ]\?
de cada 3a línea para obtener el contexto opcional de 1 línea antes++<<<<<<< HEAD
.sed '2~3 s/$/\n1/g'
: Agregue\n1
cada 3 líneas entre la 2da y 3ra línea para el número de columna.sed "N;N;N;s/\n/:/g"
: Únete cada 3 líneas con a:
.fuente
Lo uso
grep
como una solución ingenua.un ejemplo de salida:
Tal vez puedas ver una salida en color. Le ayuda a leer las salidas fácilmente.
fuente