Supongamos que tengo una rama de línea principal y una rama de entidad. He fusionado la rama principal en la rama de características muchas veces, pero solo he tenido algunos conflictos de fusión muy pequeños. Quiero limpiar el historial para que solo haya una fusión al final. ¿Cuál es el mejor método para hacer esto?Combinación de fusiones en una sola combinación
Respuesta
¿Has mirado en git rebase
?
git co -b temp_feature feature
git rebase master
Esto debería ignorar las fusiones, pero tendrá que volver a resolver los conflictos. También crea la rama temp_feature para facilitar el regreso pero lo mismo se puede lograr con el reflog.
(Respuesta equivocada continuación: esto creará única confirmación, ni una sola de combinación: - /)
creo que lo más sencillo es hacer lo siguiente:
git co master
git merge --squash feature
Esto creará única confirmación de toda la rama de características. Si no desea mantener la rama de la característica hacer:
git branch -D feature
Usted puede hacer un rebase interactivo para lograr esto, pero sólo debería hacerlo si aún no compartían esa historia con nadie más. Lo que esto significa en la práctica es que solo debe hacer esto si no ha realizado un git push
en un repositorio compartido.
Suena como si quisieras seleccionar las confirmaciones sin fusión para la rama de características en la rama de la función de limpieza, y finalmente fusionar la rama de la función de limpieza con la última máster (cualquiera que sea). Puedes usar rebase para acelerar parte de ese cherrypicking, que desafortunadamente no sé de una buena manera de hacerlo en un santiamén, ya que esto no es algo que hago muy a menudo. Sería útil si tienes una interfaz gráfica de usuario que te permite seleccionar varias confirmaciones para que sean seleccionadas a la vez.
Editar: Esta sería una solución más concreta: How to cherry pick a range of commits and merge into another branch
- 1. Combinación de varias plantillas de Django en una sola solicitud
- 2. Combinación de métodos S4 y S3 en una sola función
- 3. La combinación de estas dos expresiones regulares en una sola
- 4. Visualización del historial de combinación de Subversion
- 5. Combinación manual en GIT
- 6. SQL combinación izquierda (múltiple condición de combinación)
- 7. Calcular rango de una combinación?
- 8. Cómo especifico una combinación de bases de datos para usar en una 'combinación de hg'
- 9. combinación entrelazada con LINQ?
- 10. ¿Por qué una combinación de 3 vías es ventajosa en una combinación de 2 vías?
- 11. * combinación * Right * en LINQ
- 12. do.call en combinación con "::"
- 13. Git: ¿Cómo crear parches para una combinación?
- 14. de combinación aleatoria especie
- 15. TFS: mejores prácticas de combinación
- 16. Combinación de predicados en F #
- 17. Hash de combinación/concatenación
- 18. ¿Combinación de filtros RSpec?
- 19. Generador de combinación en Linq
- 20. Combinación de registros en vim
- 21. documentos de combinación
- 22. compleja consulta de combinación
- 23. Combinación de dos SyndicationFeeds
- 24. Combinación de artefactos en TeamCity
- 25. Combinación única de frecuencias
- 26. Combinación de prefijos en SSE
- 27. Android - Combinación de varios estilos de fuente, en una sola fuente (tipo de letra)
- 28. Combinación de entradas
- 29. vb.net combinación de teclas
- 30. Combinación de predicados
Cuando dice limpiar la historia, tiene que ser más específico. Si desea eliminar las fusiones de la línea principal en función, debe decidir cómo quiere que se vea la rama de características con esas fusiones eliminadas. Por ejemplo, si algún trabajo en la rama de características depende de los cambios realizados en la línea principal (y posteriormente se fusionó en la rama de características), eliminar las fusiones hará que la rama de características ya no se compile porque depende del código que se eliminó. –
@KevinBallard: ese es un punto válido. En algunos casos, es posible que desee cambiar la rama hacia arriba. Aunque no estoy demasiado preocupado por esta pregunta, solo quiero asegurarme de que la sucursal solo vuelva a fusionarse una vez. – Casebash