¿Qué tiene de bueno Git?

Para alguien que proviene de un background de VCS más convencional (CVS / SVN), ¿cuáles son las razones más apremiantes para aprender y migrar a git?

Comente sobre la capacidad técnica requerida de un equipo para hacer que git funcione. He visto personas inteligentes upload la curva de aprendizaje y aún perder algo de pelo sobre él. ¿Alguien puede upload esta curva o no es para todos los equipos?

Por supuesto, también quiero escuchar acerca de los beneficios funcionales, el soporte de herramientas, la integración de otros sistemas (CI, etc.) …

(Esto parece una pregunta obvia, pero no encontré un duplicado de esto a pesar de algunas búsquedas)

EDITAR Enlaces a buenos resources también apreciados.

En lo alto de mi cabeza:

  • su aspecto distribuido (cada desarrollador tiene una copy del repository)
  • La capacidad de manejar combinaciones complejas muy rápidamente
  • la posibilidad de cambiar de una tarea a otra, dejar de lado su trabajo, volver a él …
  • ramificación barata (interruptor instantáneo: ¡solo escribe unos pocos bits en un file! Y no considera una twig como un directory como lo hace SVN)

La principal dificultad es establecer un flujo de trabajo entre los diferentes repos sin romper la historia de lo que ya se ha publicado (enviado a un repository público).

texto alternativo

La rebase en particular puede ser difícil de usar correctamente al principio, ya que reescribe el historial de una twig, y ​​eso cambia el SHA1 que está asociado a ella: a una twig pública, eso significa un montón de fusiones de los otros desarrolladores que extraen de eso.

Git es profundo y puede ser complicado al principio. Diría que definitivamente no es para todos, particularmente si tienes diseñadores u otras personas no técnicas que necesitan registrarse y salir. En nuestro proyecto actual ejecutamos un back end svn y tres desarrolladores han elegido usar git mientras que dos continúan usando svn y son perfectamente contentos y productivos.

Dicho eso, git tiene mucho que ofrecer. Sin adentrarte demasiado en la magia de git, puedes aprender rápidamente a aprovechar algunos de sus aspectos más populares: la capacidad de verificar localmente sin empujar hacia arriba al repository principal, y la bifurcación y fusión casi sin problemas.

Puede tener una experiencia de git muy satisfactoria con un puñado básico de commands.

De todos los resources disponibles, Getting Git de Scott Chacon es lo que me vendió sobre los beneficios de git y me dio la motivación para avanzar en la parte más empinada de la curva de aprendizaje.

Github! Realmente, solo aprendí a apreciar git usando github.

Git es extremadamente rápido y almacena repositorys de una manera muy compacta (piense de una décima a una centésima del tamaño de la misma base de código + historial en svn). Git (y la mayoría de los VCS distribuidos) te dan twigs baratas que se generan, trabajan y fusionan sin dolor. Todo eso sucede localmente y los miembros del equipo no se distraen con el trabajo continuo de sus compañeros de equipo a less que haya un esfuerzo proactivo por compartirlo.

Mudarse a VCS distribuidos dará lugar a algunos cambios en el estilo de desarrollo que a algunos desarrolladores les encantará, pero que otros odiarán. No hay duda de que git es una bestia compleja en la que hay muchos paths hacia el mismo resultado. Al liderar una migration grupal a git, necesitarás invertir algo de time en aprender esas routes y luego diseñar un flujo de trabajo y una hoja de commands para los escenarios comunes.

Recomiendo primero ponerme cómodo con él como cliente, hablar con github o una herramienta similar.

En su pregunta sobre diseñadores y personas less técnicas que la usan, diría que si el flujo de trabajo y los commands están muy bien documentados, entonces con un poco de capacitación deberían ser capaces de ponerse al día con él. Si lo apreciarán, ¡es otra pregunta! 🙂

Una herramienta que vale la pena revisar es la placa de revisión , es una fantástica herramienta de revisión de código de equipo y parece tener un plugin git.

Empecé a usar git hace un mes y me encanta. Es rápido y fácil de usar para equipos e individuos. No es muy difícil de aprender y no necesitaba aprender nuevas habilidades técnicas para usar git. Sé que admite la migration de CVS / SVN. La mejor parte es que aún puede mantener un flujo de trabajo de estilo CVS / SVN si lo desea.

Sugiero ver el wiki de git: http://git.or.cz/gitwiki y el website oficial: http://git-scm.com/

Espero que esto ayude y disfrutes usando git.

Me doy count de que esta es una pregunta sobre Git, pero el OP debería darse count de que muchos de los beneficios se aplican a todos los principales sistemas de control de versiones distribuidas. Git, Mercurial y Bazaar tienen sus propias fortalezas y desventajas, por lo que debes estudiar las tres y decidir cuál es la más adecuada para la forma en que trabajas y tus proyectos.

Mucha gente habla de lo complicado que es usar git, pero no vale la pena que si sigues un patrón de uso muy simple, Git no es más complicado que RCS.

Usar git para su propio control de revisión de locale (para el mismo tipo de cosas que habría usado RCS) es Argumentaría más fácil que usar RCS.

Por supuesto, cuando lo utiliza para grandes proyectos con mucha gente y muchas ramificaciones, etc., puede ser más complicado que los sistemas de control de revisiones tradicionales.

Personalmente, lo he usado principalmente para proyectos personales y para tener control de revisión local en el trabajo. Usamos forzosamente en el trabajo y son bastante estrictos con respecto a la cantidad de sucursales que podemos hacer en lo que podemos verificar. Tenemos que verificar en trozos de código finalizados, comstackbles y comprobables.

A menudo estaba trabajando en trabajos de refactorización más grandes y haciendo correcciones más pequeñas al mismo time. Me pareció muy difícil hacer malabares con forzosamente. Pero con git pude tener un montón de pequeñas twigs locales para diferentes experimentos, refactorización y corrección de errores que estaba haciendo.

Entonces, para mí, los grandes puntos de venta de git son:

  • Soporte para loggings locales (Puedo verificar mi trabajo en pasos antes de comprometerme con el repository principal.
  • Fácil y conveniente para hacer muchas twigs locales y cambiar entre ellas.

El motivo del último punto es que git mantiene todas las twigs en el mismo directory, por lo que puedes intercambiarlas con los commands de git y permanecer en el mismo lugar. Me gusta porque significa que no tengo que configurar los files de configuration para mi IDE para un nuevo directory cada vez que me ramifico y no desperdicio mucho espacio de tener locas cantidades de twigs.

La historia de GIT es un clásico en la historia de FOSS. Vea la historia de Git en Wikipedia. Etiquetas para esa historia: BitKeeper, Andrew Tridgell, Torvalds, Git, auto alojado en 2 días .

Bueno, no es una respuesta, alguien con una actitud de FOSS / Hacker seguramente le encantaría leerlo.