2010-04-01 7 views
5

En mi lugar de trabajo tenemos una rama troncal "maestra" que representa el código publicado. Para hacer un cambio, verifico una copia de trabajo, creo una rama de tema, me comprometo con la rama de tema, fusiono la rama de tema en maestro y presiono.¿Cómo puedo "registrar git" solo el código publicado en el enlace troncal?

Para pequeños cambios, puedo comprometerme directamente con el maestro, luego presionar.

Mi problema es que cuando uso "git log", no me importan las ramas de mi tema en mi copia de trabajo local. Solo quiero ver los cambios en la rama maestra en el servidor de git compartido y remoto. Además, si utilizo --stat o -p o uno de sus amigos, quiero ver los archivos y cambios asociados con la combinación de commit para master, no asociados a sus commits de rama originales (que, como he dicho, yo don no quiero ver nada).

¿Cómo puedo hacer esto?

+0

try git log --merges. Invertir es git log --no-merges. –

+0

git log --merges omite commits directamente a la rama principal. --stat tampoco asociaría los cambios que suceden en las asignaciones de rama de tema con las asignaciones de fusión. Entonces --merges no es exactamente lo que quiero. –

Respuesta

1

Parece que realmente quieres diff, y no registrar, ya que parece que quieres una lista grande de --stat, o -p, en lugar de desglosarla por la confirmación en la que ocurrió originalmente.

git diff [--stat] origin/master...master 

Esto le mostrará la diferencia de lo que tiene su rama principal (después de la fusión en su rama de tema) en comparación con la base de combinación entre el origen/maestro y el maestro. Lo importante aquí es usar "..." en lugar de "..".

Si desea ver todo esto antes de fusionar su tema en maestro, puede reemplazar el último "maestro" en el ejemplo anterior con el nombre de su rama de tema, o dejarlo por completo, si actualmente tiene su rama temática prestada.

git diff [--stat] origin/master... 
3

Esto debería hacer el truco:

git log origin/master 

Es posible que desee hacer una primera git fetch para tirar hacia abajo las nuevas confirmaciones desde el extremo remoto (esto no va a fusionar en sus ramas locales) .

0

Puede ejecutar git log --graph --oneline, lo que deja en claro qué confirmaciones están en la rama actual (aunque no excluye las que no están en la lista).

Si está utilizando git-svn, git log --grep git-svn-id solo mostrará confirmaciones con git-svn-id en el mensaje de registro (que se agrega por git cuando se envía una confirmación a svn).

Cuestiones relacionadas