2012-09-26 6 views
10

¿Hay alguna manera de volver a establecer una base de una rama en otra mientras omite una confirmación particular (conflictiva) en la otra rama?¿Cómo puedo rebase mientras omito una confirmación en particular?

Por ejemplo, quiero volver a establecer la base mybranch en master, pero el maestro contiene una confirmación que entrará en conflicto con las confirmaciones en el maestro, por lo que prefiero deshacer esa confirmación por completo.

-o-o-o-o-o-x-o-o-o-o master 
    | 
    o-o-o-o mybranch 

x marca la confirmación conflictiva.

Respuesta

23

Uso rebase interactivo:

git rebase -i master 

Un editor se abrirá y usted tendrá una lista de confirmaciones de esta manera:

pick b8f7c25 Fix 1 
pick 273b0bb Fix 2 
pick 6aaea1b Fix 3 

acaba de eliminar el envío de datos que desea omitir. Se omitirá al volver a basar su rama en el maestro.

P.S. Si no puede ver el editor, consulte esta pregunta para solucionarlo: How can I set up an editor to work with Git on Windows?

+0

El editor solo muestra las confirmaciones en mybranch. ¿Hay alguna manera de mostrar todas las confirmaciones? es decir, desde la punta de mybranch, hasta el maestro, y hasta la punta del maestro? – Phillip

+1

¿Desea eliminar la confirmación en su rama o en el máster? La segunda opción es bastante insegura y causará problemas a todos los demás desarrolladores que tengan '' maestro'' como su upstream. –

+0

Quiero omitir una confirmación en el maestro (agregué un diagrama como parte de mi pregunta). No estoy preocupado por el momento sobre 'maestro' en la corriente ascendente. – Phillip

Cuestiones relacionadas