Ver el registro de git sin fusionar confirmaciones

88

Estoy tratando de ver las confirmaciones realizadas por un usuario específico y quiero eliminar las fusiones realizadas por el usuario de la salida. ¿Como lo puedo hacer?

Puedo verificar las confirmaciones de un usuario que usa git log --author=<name>, pero no puedo eliminar las confirmaciones de fusión en la salida.

PD: los conflictos de fusión no ocurren en el flujo de trabajo del repositorio en cuestión, todas las ramas se vuelven a basar antes de fusionarse en el maestro, por lo que es seguro eliminar las confirmaciones de fusión de la salida y, de manera similar, dos ramas de características no se fusionan entre sí aumentando la posibilidad.

mu 無
fuente
2
¿Y si la fusión tuviera un conflicto y tuviera que resolverlo?
Joe Phillips
2
@JoePhilllips Eso no sucede en el flujo de trabajo del repositorio en cuestión, todas las ramas se vuelven a basar antes de fusionarse en master.
mu 無
6
usogit log --no-merges
0xAX
1
@ 0xAX ¿Puedes publicar eso como respuesta? Lo aceptaré.
mu 無

Respuestas:

133

utilizar

git log --author=<name> --no-merges

Además, la --first-parentopción puede dar un resultado útil para usted:

--first-parent Sigue solo la primera confirmación principal al ver una confirmación de fusión. Esta opción puede brindar una mejor descripción general al ver la evolución de una rama de tema en particular, porque las fusiones en una rama de tema tienden a ser solo para ajustarse a las actualizaciones ascendentes de vez en cuando, y esta opción le permite ignorar las confirmaciones individuales traídas a su historia por tal fusión. No se puede combinar con --bisect.

0xAX
fuente
aún mejor con --pretty=format:"%h%x09%an%x09%ad%x09%s"
k1eran
1
@ k1eran esto trunca el cuerpo de confirmación (asumiendo que hay uno)
Erythros
1
@Erythros entendió, y me resulta útil obtener un resumen legible conciso de las confirmaciones.
k1eran
O incluyendo colores y gráficolog --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --first-parent
Highmastdon hace
18

Puede omitir fusiones con --no-merges:

git log --no-merges --author=<name>

Consulte la página de manual de git log para obtener más detalles.

morxa
fuente
2
Esto solo excluye las confirmaciones de fusión. Pero las confirmaciones normales dentro de esa rama ascendente aún son visibles.
Shiplu Mokaddim