suponiendo que soy el mantenedor de un acuerdo de recompra, y quiero traer cambios de un contribuyente, hay algunos flujos de trabajo posibles:Git cereza-escoge vs flujo de trabajo Combinar
- I
cherry-pick
cada una confirmación desde el mando a distancia (en orden). En este caso, git registra la confirmación como no relacionada con la rama remota. - I
merge
rama, tirando de todos los cambios y agregando un nuevo compromiso de "conflicto" (si es necesario). - I
merge
cada commit de la bifurcación remota individualmente (otra vez en orden), permitiendo que los conflictos sean registrados para cada commit, en lugar de agruparse todos juntos como uno solo. - Para completar, puede hacer una
rebase
(¿igual que la opcióncherry-pick
?), Pero entiendo que esto puede causar confusión para el colaborador. Tal vez que elimina la opción 1.
En ambos casos 2 y 3, git registra la historia rama de las confirmaciones, a diferencia 1.
¿Cuáles son los pros y los contras entre el uso de cualquiera de cherry-pick
o merge
métodos descritos ? Según tengo entendido, el método 2 es la norma, pero creo que la resolución de un compromiso grande con una única combinación de "conflicto" no es la solución más limpia.
En realidad, en teoría existe la posibilidad de que Mallory corrompa su repositorio al crear confirmaciones con el mismo SHA1 pero con contenido diferente, probablemente nunca ocurra en la práctica. :) – Bombe
Ha :) Quise decir "en teoría, las probabilidades son tan bajas que puedes confiar en que no va a suceder", pero tienes razón en que dice que no funciona. – quark
¿Qué opinas sobre "merge --squash"? – cmcginty