Lo que es git y por las que debe utilizar el control de versiones, si eres un desarrollador

A medida que los desarrolladores web, muchas de las veces se tiende a trabajar en los sitios de desarrollo de país, entonces sólo subir todo cuando hayamos terminado. Esto está bien cuando es sólo usted y los cambios son pequeños, pero cuando se trata con más de una persona trabajando en algo o en un proyecto grande con una gran cantidad de componentes complicados, eso simplemente no es factible. Eso es cuando nos volvemos a algo que se llama control de versiones.

Hoy voy a estar hablando de un software de control de versiones de código abierto llamado Git. Esto permite que más de una persona para trabajar con seguridad en el mismo proyecto sin interferir entre sí, pero es mucho más que eso.

¿Por qué utilizar el software de control de versiones?

En primer lugar, el nombre debe dar a la basura. software de control de versiones le permite tener “versiones” de un proyecto, que muestran los cambios que se realizaron en el código con el tiempo, y le permite dar marcha atrás si es necesario y deshacer los cambios. Esta habilidad solo - de ser capaz de comparar dos versiones o cambios de marcha atrás, hace que sea bastante de gran valor cuando se trabaja en proyectos de mayor envergadura.

Probablemente hasta haya hecho esto a sí mismo en algún momento, el ahorro de copias de un proyecto en diferentes puntos para que tenga una copia de seguridad. En un sistema de control de versiones, sólo los cambios se guardan - un archivo de revisión que podría ser aplicado a una versión, con el fin de que sea la misma que la próxima versión. Con un desarrollador, esto es suficiente.

Pero lo que si usted tiene más de un desarrollador que trabaja en un proyecto? Fue entonces cuando la idea de un servidor de control de versiones centralizado entra en acción. Estos han sido la norma durante mucho tiempo, por lo que todas las versiones se almacenan en un servidor central, y los desarrolladores individuales pago y envío y cargar los cambios de nuevo a este servidor. Si alguna vez has mirado en el historial de edición de una página de Wikipedia, tendrá una buena idea de cómo funciona esto en un escenario del mundo real:

software de control de versiones

Los beneficios de un sistema como este es que varios desarrolladores pueden hacer cambios, y cada cambio, entonces se puede atribuir a un desarrollador específico. En el lado negativo, el hecho de que todo se almacena en una base de datos remota significa que no se pueden realizar cambios al servidor que va Down- y si se pierde la base de datos central, cada cliente sólo tiene la versión actual de lo que estaban trabajando.

Eso nos lleva a Git, y otros de los llamados sistemas de control de versiones distribuidos. En estos sistemas, los clientes no sólo echa un vistazo a la versión actual de los archivos y el trabajo de ellos - son un reflejo de todo el historial de versiones. Cada desarrollador siempre tiene una copia completa de todo. Un servidor central todavía se utiliza, pero si sucede lo peor, entonces todo puede todavía ser restaurado a partir de cualquiera de los clientes que tienen las versiones más recientes.

Vídeo: Control de versiones

Git trabaja específicamente mediante la adopción de “instantáneas” de Files- si los archivos se mantienen sin cambios en una versión particular, simplemente se une a los archivos anteriores - esto mantiene todo rápido y delgado.

También puede interesar a conocer que Git se utiliza para administrar y desarrollar el núcleo Linux kernel - el bloque de construcción de la base sobre la cual se construyen todas las distribuciones de Linux.

control de versiones

¿Qué hay de Github?

Aunque puede ejecutar su propio servidor Git local, Github es a la vez un servidor remoto, una comunidad de desarrolladores, y una interfaz gráfica web para la gestión de su proyecto Git. Es de uso gratuito para hasta 5 repositorios públicos - es decir, cuando cualquier persona puede ver o tenedor a su código - con planes de bajo costo para proyectos privados. Te sugiero que vaya registrarse para obtener una cuenta gratuita para que pueda empezar a jugar con sus propios proyectos o se bifurcan de alguien más.

control de versiones

bifurcan & Derivación

Estos son conceptos centrales a la experiencia de Git, así que vamos a tomar un momento para explicar la diferencia.

Usted probablemente ha escuchado la obra “tenedor” cuando se trata de distribuciones de Linux. Si está familiarizado con la aplicación de centro multimedia Plex, usted sabrá que era originalmente un tenedor del código abierto similares Xbox Media Center. Esto simplemente significa que en algún momento en el pasado, algunos desarrolladores tomaron el código de XBMC, y decidieron seguir su propio camino con IT que se convirtió en Plex.Aeon Nox 3.5: hermoso y personalizable tema para XBMCAeon Nox 3.5: hermoso y personalizable tema para XBMCConfigurar el centro de medios exactamente de la forma que desee. Aeon Nox 3.5 es la versión más reciente de lo que es quizás el mejor tema para XBMC, y es una rara combinación: hermosa ...Lee mas

Esto es por supuesto totalmente permitido cuando el proyecto es de código abierto - puede tomar el código, hacer lo que quiera con él. Con Git, si considera que sus cambios son suficientemente buenos para ser enrollado de nuevo en el proyecto “maestro”, se puede hacer una “petición de atracción” para el autor, pidiéndoles que se tire de los cambios de nuevo en su proyecto original. Esto le permite tener cientos de miles de desarrolladores que trabajan en un proyecto en cualquier momento, ninguno de los cuales necesariamente siempre deben ser aprobados por el acceso de código - que acaba de copiar el código, hacer cambios, y solicitar que se deshace en el maestro. Por supuesto, es hasta el dueño del proyecto original si deciden aceptar los cambios o no.

La ramificación es algo que se hace internamente en un proyecto por los desarrolladores autorizados. Se le permite separar fácilmente los problemas o características específicas, y trabajar en ellos sin romper los archivos maestros. Una vez que esté satisfecho de que su rama se ha ocupado de la cuestión, se fusionan de nuevo en el maestro. En cualquier momento, puede haber tantas ramas como gusta- que no interfieran entre sí. También puede combinar cambios entre las ramas sin tocar el maestro.

Aquí está un gran esquema de un ejemplo de flujo de trabajo de Vincent Driessen:

Vídeo: #miercoledeweb -- Git - Sistema de control de versiones

software de control de versiones

La próxima vez, vamos a ver cómo configurar un ejemplo de Git de trabajo y hacer cambios en el código dentro de las ramas. El control de versiones es un tema enorme. Sólo he dado el resumen más breve aquí, sino como un desarrollador que se utiliza para sólo hacer y deshacer los cambios si no funcionan, todo el concepto ha soplado mi mente - espero que así sea también la tuya.

Vídeo: ¿Que es GIT?

¿Es usted un avezado programador con experiencia en Git? ¿Usted apenas está empezando y piensa que le gustaría tener un ir? En off en los comentarios!

Artículos Relacionados