Hemos estado introduciendo Git donde trabajo y naturalmente ha habido resistencia. Fue para un nuevo proyecto, por lo que ahora estamos manteniendo dos repositorios.
Parte del problema es que las personas no verán los beneficios de cambiar a un SCM diferente cuando el que han estado utilizando funcione para ellos. Nos ayudó cuando nos sentamos con nuestro equipo durante un par de sesiones de una hora en las que solo mostramos casos de uso de nuestros proyectos y cómo Git lo hizo más fácil. Por ejemplo, las cosas que nos ayudaron:
- Ramas locales para fomentar la experimentación
- Git bisect para rastrear fácilmente errores
- confirmaciones frecuentes sin interrumpir a otros
- Cambio rápido entre sucursales
etc. Cada uno de estos resolvió un problema que habíamos encontrado con nuestro SCM anterior y para que la gente pudiera apreciar más a Git.
La otra cosa es que no se puede esperar que la gente se vaya y lea libros al respecto porque muy pocos lo harán. Tal vez necesiten hacer el trabajo, tener otras responsabilidades o cualquier número de razones.
Entonces, como "experto en Git", debes sentarte y hacerlo lo más fácil posible para que la gente lo use. Quieren escribir código, no meterse con su sistema SCM.
La CLI de Git es críptica y los problemas triviales (para usted y para mí) impedirán que las personas trabajen. Esto es lo que sucedió en nuestro equipo (tenga en cuenta que estos son desarrolladores bastante competentes):
- Git con SSH en Windows era un problema común.
- La gente tiraría, se fusionaría, pero no empujaría la combinación. Así que la gráfica sería un gran lío confuso
- El problema de rendimiento en Windows hizo que el "estado de git" tomara 15 segundos
- No se pudo averiguar cómo extraer una nueva rama. Harían un "git checkout -b" que se derivaría de lo que estuvieran trabajando
- EGit en eclipse tenía un menú abrumador. Terminé diciéndole a todos que usen la línea de comandos al principio
- Basado en el elemento anterior, fusionando y configurando git mergetool
- Confundido acerca de las diferencias entre "git add" y "git commit" y "git push".
Todavía tenemos algo de resistencia, pero la gente definitivamente puede ver los beneficios. Es vital tener algunas personas Git para orientación y estar dispuesto a ayudar. También evitaría enseñar cosas interesantes como reset / rebase / - enmendar / etc. Como la mayoría de la gente usará Git como SVN, es mejor dejar que lo descubran si así lo desean.