Estoy tratando de personalizar el formatting para el git log
. Quiero que todos los commits se muestren en una línea. Cada línea solo debe mostrar la primera línea del post de confirmación.
Descubrí que git log --pretty=short
debería hacer el truco pero en mi computadora muestra el logging completo como lo hace el logging de git log
(además de la timestamp).
Además, traté de usar los marcadores de position como se define en la página del manual . Sin embargo, no pude encontrar un command para acortar el post de logging. Intenté esta línea git log --pretty=format:'%h : %s'
que muestra el hash en corto %h
y el post completo %s
en una línea.
Estoy usando la git version 1.7.3.1.msysgit.0
en Vista.
Tal vez tiene algo que ver con la forma en que escribo mis posts de compromiso. Aquí hay un ejemplo:
Added some functionality. + Added print function in Foo class. + Added conversion from foo to baz.
Por lo tanto, con el ejemplo dado, solo quiero que me den salida. Added some functionality.
precedido por el hash de shortend.
¿Has probado esto?
git log --pretty=oneline --abbrev-commit
El problema es probablemente que te falta una línea vacía después de la primera línea. El command anterior generalmente funciona para mí, pero acabo de probar en una confirmación sin una segunda línea vacía. Obtuve el mismo resultado que tú: todo el post en una línea.
La segunda línea vacía es un estándar en los posts de confirmación de git. El comportamiento que ves probablemente fue implementado a propósito.
La primera línea de un post de compromiso debe ser una breve descripción. Si no puede hacerlo en una sola línea, puede usar varios, pero git considera que todo lo anterior a la primera línea vacía es la "breve descripción". oneline
imprime toda la descripción corta, por lo que todas sus 3 filas.
¿ git log --oneline
hace lo que quiere?
Puede definir un alias global para que pueda invocar un logging corto de una manera más cómoda:
git config --global alias.slog "log --pretty=oneline --abbrev-commit"
Luego puede llamarlo usando git slog
(incluso funciona con autocomplete si lo tiene habilitado).
Mejor y más fácil git log haciendo un alias . Pegue el código de abajo al terminal solo una vez.
git config --global alias.lg "log --color --graph --pretty=format:'%Cnetworking%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
Salida
git lg
Líneas de salida cambiadas
git lg -p
Otras lecturas.
https://coderwall.com/p/euwpig/a-better-git-log
Lectura avanzada.
http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/
Sin posts de confirmación, solo el hash:
git log --pretty=oneline | awk '{print $1}'
si quieres usar siempre git log
de manera que puedas agregar git alias
git config --global alias.log log --oneline
después de ese git log
se imprimirá lo que normalmente se imprimiría con el git log --oneline