Probablemente comenzaría empujando todos los repositorios a ramas separadas en un repositorio central, desde el cual puedo rebasear, fusionar etc. entre ramas fácilmente.
Una buena herramienta de visualización tales como git-age, gitnub, gitx, giggle puede hacer maravillas, pero su tarea será probablemente bastante tedioso a menos que pueda encontrar los puntos de ramificación. Si hay parches similares aplicados a todas las sucursales, puede usar (interactivo) rebase para reordenar sus confirmaciones de modo que estén en el mismo orden. Luego puede comenzar a "subir y cerrar" sus ramas, moviendo el punto de la rama hacia arriba al poner las confirmaciones en el maestro. Se puede encontrar una buena descripción sobre cómo reordenar commits usando rebase here.
Las posibilidades son las acciones que debe realizar se describen en los enlaces proporcionados por el Git Howto Index. Un buen cheat sheet siempre es bueno tenerlo a tu alcance. Además, sospecho que el seguimiento de Eric Sinks post "DVCS and DAGs, Part 1" contendrá algo útil (No fue así, pero fue una lectura interesante).
adicional buenas para tener enlaces son: Git Magic, Git Ready y SourceMage Git Guide
espero que todos los repositorios habían buena comprometerse mensajes que indican el propósito de cada parche, es eso o revisión de código :)
En cuanto a cómo mantener las personalizaciones, hemos tenido suerte con lo siguiente:
Comenzamos por separar (o mantener separados) el código personalizado del código genérico. Entonces probamos dos enfoques; tanto que funcionaba bien:
- Todos los despliegues tienen sus propios repositorios donde se guardaba la personalización.
- Todas las implementaciones tienen su propia sucursal en un repositorio de "personalización".
Después de que el primer despliegue y al ver que el segundo era un hecho pasamos mucho tiempo tratando de prever la personalización futuro/puntos de corte para reducir la duplicación a través de los repositorios personalizados (alt. 1, que es el enfoque que utilizamos en la actualidad) y en el repositorio de base/core.
Y sí, nosotros tratamos de refactorizar sin piedad cada vez que nos damos cuenta el núcleo/personalización split deslizamiento :)
Gracias por su ayuda . Soy nuevo en git, por lo que probablemente sea un poco más desafiante para mí que otros que están acostumbrados. –
Oye, tenía una excusa para descargar algunos enlaces :) Aunque probablemente obtendrás más y mejores respuestas si tus preguntas son más específicas en el futuro –
Ah, y es un poco educado aceptar una respuesta si encuentras es útil (no hay prisa, espere un poco ...). Siempre puedes cambiar de opinión sobre eso más adelante si aparece una mejor respuesta. –