Cuando alguien ha recogido a cereza de mis confirmaciones Git y confirmaciones hechas de su propia, ¿Cómo puedo combinar?

StackOverflow https://stackoverflow.com/questions/4465710

Pregunta

repo y hacer git Supongamos que tenedor de alguien comete A, B, C y D. El persom quien a partir de entonces en forma de horquilla cereza-escoge A y C, que por lo tanto resultan A 'y C'. También hace X confirmaciones, Y, y Z de los suyos. Así que después de todo esto, mi sucursal cuenta con A B C D, y su tiene una 'C' X Y Z Supongamos que ambas ramas se publican, por lo rebase no es una opción atractiva. También suponga que X Y Z no haga conflicto con cualquiera de A B C D. ¿Cómo puedo combinar estas dos ramas de una manera útil? Debería simplemente fusionar y luego resolver manualmente todo? ¿Hay algo que pueda hacer por duplicado los mensajes de confirmación en el registro de la cabeza resultante de la fusión? Son estas dos ramas condenados a la sincronización solamente por Cherry-picking cada una de las confirmaciones otra a partir de ahora?

¿Fue útil?

Solución

Una fusión recta debería funcionar. Git debe notar los conjuntos de cambios idénticos y no se intentará fusionar A / A 'o C / C'. Si X, Y o Z tocó el mismo código que A '/ C' ha cambiado, puede que tenga que resolver los conflictos allí, especialmente si B o D tocaron el mismo código.

Siempre git merge --no-commit y puede inspeccionar el resultado para ver si se trata de lo que se esperaba.

Otros consejos

En el caso de que no haya conflictos, una fusión recta es obvia. Si hay conflictos, aunque ...

Se podría combinar su C' en primer lugar, cualquier conflicto durante esta etapa son de volver a aplicar sus propios cambios, si es que no son triviales o porque se aplican un poco fuera de orden. Puede suceder si su C se acumula en B y su C 'no era una copia limpia, o si cualquiera de B C D se acumula en un modo de volver a aplicar su A' ya no es obvio no-op, etc.

Se puede omitir la investigación detallada de conflictos y simplemente aceptar su versión, de forma manual o:

git merge --strategy=ours C'

A continuación, combinar el resto, prestando más atención a los conflictos allí. Si su X Y Z de hecho no toque A B C D cosas, esto debe ir sin conflictos. Si hacía algo raro o mal durante la fusión de C como C 'y se descartó cuando la fusión C', se puede volver y morderte aquí o en cualquier momento en el futuro, sin embargo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top