Hemos estado presentando a Git donde trabajo y, naturalmente, ha habido resistencia. Fue para un nuevo proyecto, por lo que ahora mantenemos 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 les funcione. Ayudó cuando nos sentamos con nuestro equipo para un par de sesiones de una hora en las que mostramos casos de uso de nuestros proyectos y cómo Git lo hizo más fácil. Por ejemplo, las cosas que nos ayudaron:
- Sucursales locales para fomentar la experimentación
- Git bisect para localizar fácilmente errores
- compromisos 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 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 'Git expert', debe sentarse y hacer que sea lo más fácil posible para las personas usarlo. Quieren estar escribiendo código, no jugando 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 (ten en cuenta que estos son desarrolladores bastante competentes):
- Git con SSH en Windows era un problema común.
- La gente tiraría, fusionaría, pero no empujaría la fusión. Entonces el gráfico sería un gran desastre confuso
- El problema de rendimiento en Windows hizo que el "estado de git" tomara 15 segundos
- No se pudo encontrar la manera de obtener una nueva rama. Harían un "git checkout -b" que se ramificaría de lo que sea que estuvieran trabajando
- EGit en eclipse tenía un menú abrumador. Terminé diciéndole a todos que usen la línea de comando al principio
- Basado en el elemento anterior, fusionando y configurando git mergetool
- Confundido sobre 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 contar con algunas personas Git para recibir orientación y estar dispuestos a ayudar. También evitaría enseñar cosas interesantes como restablecer / rebase / - enmendar / etc. Debido a que la mayoría de las personas usarán Git como SVN, es mejor dejar que lo descubran si así lo desean.