La historia del git
git es una de esas herramientas que es tan sencillo de usar, que con frecuencia no descubres una gran cantidad de matices. Usted termina clonando un repositorio de la web, así como de eso. Si realiza cambios, quizás los rastree, así como si es realmente educado, puede producir una solicitud de extracción para proporcionarlos nuevamente al proyecto. Sin embargo, hay mucho más que puedes hacer. Por ejemplo, ¿entendió que Git puede rastrear documentos de palabras colaborativos? ¿O administrar sus datos de inicio a través de varias cajas de Linux?
Git pertenece a un hogar de productos de aplicación de software que realizan el control de revisión (o versión). El concepto es que puede establecer la aplicación de software (por ejemplo), así como hacer un seguimiento de cada revisión. Los grandes sistemas tienen disposiciones para permitir que varias personas trabajen en un trabajo a la vez. Del mismo modo, generalmente hay algún método para dividir un trabajo en diferentes partes. Por ejemplo, puede separarse para establecer una versión del producto para un mercado diferente o para probar una función experimental sin romper el desarrollo típico. En algunos casos, finalmente traerá que la división de la línea primaria.
Aunque en la próxima entrega, le proporcionaré algunas utilidades extrañas para Git, puede descubrir útil, esta publicación es principalmente la historia de la forma exactamente de cómo llegó el GIT. Se entiende el avance de la fuente abierta para las guerras de la llama, así como también hay al menos algunos en este cuento. Además, en la verdadera moda hacker, el héroe de la historia decide que no le gustan las herramientas que está utilizando así … bueno, ¿qué harías?
Guerra de los controladores de la versión.
Históricamente, una gran cantidad de aplicación de software que hizo esta función tenía una mentalidad de servidor central. Es decir, el código vivió en la red en algún lugar. Cuando deseara trabajar en un Data, lo inspeccionaría. Esto solo funcionó si nadie más lo había inspeccionado. Por supuesto, si tuviera éxito, nadie más podría inspeccionar sus datos hasta que los ponga de vuelta. Si estuviera alejado de la red, así como deseado trabajar en algo, tan bien.
Sin embargo, herramientas más contemporáneas relajan algunas de estas restricciones. Idealmente, una herramienta puede proporcionarle una copia regional de un trabajo, así como mantener de inmediato a otras copias actualizadas a medida que libere los cambios. Este método no hubo una copia central para perder, puede trabajar en cualquier lugar, así como no teníamos que coordinar trabajando en diferentes cosas con otros compañeros de equipo.
Herramienta cerrada
Un equipo distribuido extremadamente grande establece el kernel de Linux. A fines de 1998, el equipo está dificultando con la gestión de revisiones. Un desarrollador de kernel, [Larry McVoy], tenía un negocio que creó una versión distribuida escalable, administre el producto llamado bitkeeper. Aunque era un producto industrial, hubo un permiso de vecindario que le permitió utilizarlo siempre y cuando no trabajara en una herramienta contendiente mientras estaba utilizando el producto, así como por un año a partir de entonces. La limitación utilizada tanto en la competencia industrial como de código abierto. Aunque el producto mantuvo la mayoría de los datos en su máquina, hubo un componente del servidor, por lo que la empresa podría, de hecho, realizar un seguimiento de su uso del producto.
En 2002, el equipo del kernel de Linux abrazó a Bitkeeper. [Linux Torvalds] se encontraba entre los defensores del nuevo sistema. Sin embargo, otros diseñadores (y celebraciones interesadas como [Richard Stallman] estaban preocupadas por utilizar una herramienta patentada para establecer una fuente abierta. BitmOver: el negocio detrás de Bitkeeper, agregó algunas puertas de enlace para garantizar que los diseñadores que deseen utilizar un sistema diferente puedan, para algunos grado.
En su mayor parte, las cosas se calmaron con solo escaramuzas de llamas ocasionales que estorban aquí, así como allí. Eso está arriba hasta 2005, cuando [el negocio de McVoy] reveló que interrumpiría la versión gratuita de Bitkeeper. Ostensiblemente la razón fue debido a un individuo que establece un cliente que agregó características de la versión industrial a la gratuita.
Nuevas herramientas
Como resultado, dos trabajos giran tanto como establecen un reemplazo. Mercurial era uno así como un git, por supuesto, era el otro. [McVoy] contactó con un cliente industrial que exigía que su trabajador [Bryan O’Sullivan] deja de contribuir a Mercurial, que lo hizo. Por supuesto, tanto mercurial como Git, se convirtieron en fructificación, con Git que terminó siendo solo el sistema de administración de la versión del equipo del kernel, sin embargo, el sistema para una gran cantidad de personas también.
Nacimiento de git
[Linus] buscó un sistema más fuera del estante. Ninguno en ese momento tuvo el rendimiento o las características que se ajustarían al equipo de avance del kernel. Diseñó git por la velocidad, la simplicidad, así como para evitar que realicen las mismas cosas que realizan los CVS (un programa de administración de versión revelada).
El avance inicial se afirma que ha tomado unos días. Desde la versión 1.0 de la versión 1.0 a fines de 2005, la aplicación de software ha generado más de un sitio web importante, así como ha terminado siendo el sistema de opciones para muchos desarrolladores, tanto de código abierto como comercial.
Hombre repo
El diagrama de flujo muestra la tric.K de exactamente cómo GIT maneja grandes acuerdos de los desarrolladores a la vez: repositorios o repos. Cada diseñador tiene una copia general de todo el trabajo (el repositorio regional). De hecho, si no le importa compartir, ni siquiera requiera un repositorio remoto. Su repo personal es tanto un trabajo de git con todas las funciones que la de cualquier otra persona, incluso la remota, que es más probable que sea más probable en GitHub o un servidor de red más. Usted realiza sus modificaciones en el directorio de trabajo, etapa de lo que está “hecho” con (por ahora), así como dedicarlo a su repo. Cuando sea hora, empuja sus modificaciones tanto como el control remoto, así como se fusiona con los cambios de otras personas.
Curiosamente, Git no solo funciona en los datos de texto (le mostraré más sobre eso en la próxima instalación). Sin embargo, lo hace el trabajo más fino en los datos de texto, ya que es suficiente para notar modificaciones en los datos que no se superponen, así como se combinan automáticamente. Entonces, si participo un error, incluido un bucle para un bucle en algún código, así como su modificación de algunos mensajes de error, Git lo agradará todo cuando se fusione nuestro código.
Eso no siempre funciona, por supuesto. Eso lleva a los conflictos que tienes que resolver manualmente. Sin embargo, a menos que tenga dos personas tocando las mismas partes precisas del código, Git generalmente hace una buena tarea de resolver la diferencia. Por supuesto, los datos binarios generalmente no obtienen ese lujo. No se puede diferenciar con precisión un ícono para ver que una persona que una persona atrajo un bigote en él, así como una persona más convertida en el fondo de fondo. Sin embargo, técnicamente, si es posible que descubra el algoritmo, puede agregarlo a Git.
Desenlace
Si desea aumentar su comprensión de Git, más allá de solo hacer un clon, podría hacerlo peor que pasar 15 minutos en este tutorial. Si ya entiende lo básico, puede descubrir algunas cosas nuevas en un tutorial más avanzado o inspeccione el video de una charla [Linus] que se proporciona en Git A, mientras vuelve a ser.
En 2016, por cierto, Bitkeeper reveló que se moverían al permiso de Apache que, por supuesto, es de origen abierto. Tipo de irónico, ¿no es así?
Créditos fotográficos:
Soldado de Tux, por [Sharkey], CC BY-SA 3.0
[Linus Torvalds] de Linux Magazine, CC BY-SA 3.0
Diagrama de flujo por [lbhtw], cc by-sa 3.0