Cel: +52 (55) 3040-5403 Correo: mariana.velazquez@recluit.com
post-tittle

¿Qué es GIT?

Por: Reclu IT

28 de julio de 2020

Git es un sistema de control de versiones distribuido de código abierto y gratuito. Realiza un seguimiento de los proyectos y archivos a medida que cambian con el tiempo con la ayuda de diferentes colaboradores.

El control de versiones es un sistema que registra los cambios en un archivo, o conjunto de archivos, a lo largo del tiempo para que pueda recuperar versiones específicas más adelante.

Git ayuda a realizar un seguimiento de los cambios realizados en un código. Si en algún momento durante la codificación encuentra un error fatal y no sabe qué lo está causando, Git le permite volver a un estado estable. También le ayuda a ver qué cambios se han realizado en el código con el tiempo.

Ahondamos en algunos puntos de sus usos:

  • Sistema de control: esto básicamente significa que Git es un rastreador de contenido. Por lo tanto, Git se puede usar para almacenar contenido; se usa principalmente para almacenar código debido a las otras características que proporciona.
  • Sistema de control de versiones: el código que se almacena en Git sigue cambiando a medida que se agrega más código. Además, muchos desarrolladores pueden agregar código en paralelo. Por lo tanto, el Sistema de control de versiones ayuda a manejar esto al mantener un historial de los cambios que han sucedido. Además, Git proporciona características como ramas y fusiones, que trataré más adelante.
  • Sistema de control de versiones distribuido: Git tiene un repositorio remoto que se almacena en un servidor y un repositorio local que se almacena en la computadora de cada desarrollador. Esto significa que el código no solo se almacena en un servidor central, sino que la copia completa del código está presente en todas las computadoras de los desarrolladores. Git es un sistema de control de versiones distribuido ya que el código está presente en la computadora de cada desarrollador.

¿Por qué se necesita un sistema de control de versiones como Git?

Los proyectos de la vida real generalmente tienen múltiples desarrolladores trabajando en paralelo. Por lo tanto, se necesita un sistema de control de versiones como Git para garantizar que no haya conflictos de código entre los desarrolladores.

Además, los requisitos en tales proyectos cambian a menudo. Por lo tanto, un sistema de control de versiones permite a los desarrolladores revertir y volver a una versión anterior del código.

Finalmente, a veces varios proyectos que se ejecutan en paralelo involucran la misma base de código. En tal caso, el concepto de ramificación en Git es muy importante.

Su historia

Git nació de las frustraciones de la comunidad del kernel de Linux con los VCS disponibles (sistemas de control de versiones). El desarrollo del kernel de Linux fue bastante inusual para su época: había una gran cantidad de contribuyentes en el proyecto, así como una gran variación en la participación de los contribuyentes y el conocimiento de la base de código.

Como resultado de la inusual situación de desarrollo del kernel de Linux, los desarrolladores lucharon por encontrar VCS que se ajustaran a sus necesidades. Se conformaron con una mezcla de BitKeeper y el Sistema de Revisiones Simultáneas (CVS), con un grupo de desarrolladores principales trabajando en cada sistema para administrar el desarrollo del núcleo. BitKeeper proporcionó un control de revisión distribuido, mientras que CVS era un sistema de control de versiones cliente-servidor que permitía a los desarrolladores «retirar» copias del proyecto, realizar cambios y luego «registrar» sus cambios en el servidor.

A principios de 2005, Larry McVoy, el titular de los derechos de autor de BitKeeper, anunció la revocación de una licencia que permite el uso gratuito del software BitKeeper. Afirmó que Andrew Tridgell, un programador de computadoras australiano que estaba creando software que interoperaba con BitKeeper, había realizado ingeniería inversa del código fuente de BitKeeper y había violado su licencia. Muchos desarrolladores principales de Linux que confiaban en el software gratuito de BitKeeper para desarrollar el kernel de Linux ahora no podían usarlo.

La relación de la Comunidad Linux con BitKeeper no había estado completamente libre de conflictos, pero esperaban una alternativa viable antes de dar el salto para cambiar de BitKeeper. Linus Torvalds, el desarrollador principal del kernel de Linux, comenzó a trabajar en un nuevo VCS después de no ver otras opciones gratuitas que satisfagan sus necesidades. En un correo electrónico a la lista de correo del núcleo, Linus transmitió cómo estaba contento con BitKeeper y lo que había hecho para el desarrollo del núcleo, principalmente porque había ayudado al equipo a mantener una visión mucho más precisa de los cambios y el seguimiento de los conjuntos de cambios. Teniendo en cuenta que aunque BitKeeper no funcionó, fue muy útil para cambiar la forma en que el núcleo se desarrolló para mejor.

Git fue escrito con una filosofía de diseño de kit de herramientas a la par con las herramientas de línea de comandos utilizadas y construidas dentro de la comunidad Linux. Si bien el diseño del kit de herramientas ofreció a los usuarios un acceso más granular y de bajo nivel a gran parte de la funcionalidad de Git, tiene una curva de aprendizaje abrupta para los nuevos usuarios debido al gran conjunto de comandos que pueden ser no intuitivos para muchas personas que no están familiarizadas con la línea de comandos herramientas u otros VCS. Git también carece de su capacidad para vincularse y construirse en otros servicios y aplicaciones. Muchos desarrolladores de aplicaciones que han creado o están construyendo herramientas sobre Git se quejan de la falta de una biblioteca enlazable. El binario de Git no es reentrante, lo que significa que no puede ser interrumpido en el medio de su ejecución y luego ser llamado nuevamente de forma segura. Esto obliga a cualquier aplicación o servicio web a usar el binario para ejecutar una llamada al binario y esperar a que se ejecute completamente antes de volver a llamarlo, lo que afecta negativamente la velocidad de la aplicación. Hay un par de proyectos trabajando para remediar esta falta de una biblioteca enlazable, especialmente libgit2, una implementación de biblioteca enlazable multiplataforma de Git.

Otro conjunto de problemas con Git es su incapacidad para manejar grandes cantidades de archivos o archivos de gran tamaño. Si su proyecto contiene una gran cantidad de archivos que no son de texto, como imágenes, que se actualizan con frecuencia, Git se vuelve muy lento, por lo que el tamaño de repositorio práctico más grande solo unos pocos GB.

Git fue diseñado casi perfectamente para adaptarse a las necesidades que buscaban Linus y el equipo de Linux. Cumplió con todos los requisitos básicos para un VCS que Linus describió, y lo hizo de manera elegante y sencilla para ser lo más eficiente posible cuando se usaba. Si bien hay algunos problemas menores, Git está diseñado bastante bien y continuará siendo el VCS elegido durante muchos años.

Deja tu comentario

Tu dirección de correo electrónico no será publicada.

Campos obligatorios(*)
post-tittle

¿Qué es GIT?

Por: Reclu IT

28 de julio de 2020

Git es un sistema de control de versiones distribuido de código abierto y gratuito. Realiza un seguimiento de los proyectos y archivos a medida que cambian con el tiempo con la ayuda de diferentes colaboradores.

El control de versiones es un sistema que registra los cambios en un archivo, o conjunto de archivos, a lo largo del tiempo para que pueda recuperar versiones específicas más adelante.

Git ayuda a realizar un seguimiento de los cambios realizados en un código. Si en algún momento durante la codificación encuentra un error fatal y no sabe qué lo está causando, Git le permite volver a un estado estable. También le ayuda a ver qué cambios se han realizado en el código con el tiempo.

Ahondamos en algunos puntos de sus usos:

  • Sistema de control: esto básicamente significa que Git es un rastreador de contenido. Por lo tanto, Git se puede usar para almacenar contenido; se usa principalmente para almacenar código debido a las otras características que proporciona.
  • Sistema de control de versiones: el código que se almacena en Git sigue cambiando a medida que se agrega más código. Además, muchos desarrolladores pueden agregar código en paralelo. Por lo tanto, el Sistema de control de versiones ayuda a manejar esto al mantener un historial de los cambios que han sucedido. Además, Git proporciona características como ramas y fusiones, que trataré más adelante.
  • Sistema de control de versiones distribuido: Git tiene un repositorio remoto que se almacena en un servidor y un repositorio local que se almacena en la computadora de cada desarrollador. Esto significa que el código no solo se almacena en un servidor central, sino que la copia completa del código está presente en todas las computadoras de los desarrolladores. Git es un sistema de control de versiones distribuido ya que el código está presente en la computadora de cada desarrollador.

¿Por qué se necesita un sistema de control de versiones como Git?

Los proyectos de la vida real generalmente tienen múltiples desarrolladores trabajando en paralelo. Por lo tanto, se necesita un sistema de control de versiones como Git para garantizar que no haya conflictos de código entre los desarrolladores.

Además, los requisitos en tales proyectos cambian a menudo. Por lo tanto, un sistema de control de versiones permite a los desarrolladores revertir y volver a una versión anterior del código.

Finalmente, a veces varios proyectos que se ejecutan en paralelo involucran la misma base de código. En tal caso, el concepto de ramificación en Git es muy importante.

Su historia

Git nació de las frustraciones de la comunidad del kernel de Linux con los VCS disponibles (sistemas de control de versiones). El desarrollo del kernel de Linux fue bastante inusual para su época: había una gran cantidad de contribuyentes en el proyecto, así como una gran variación en la participación de los contribuyentes y el conocimiento de la base de código.

Como resultado de la inusual situación de desarrollo del kernel de Linux, los desarrolladores lucharon por encontrar VCS que se ajustaran a sus necesidades. Se conformaron con una mezcla de BitKeeper y el Sistema de Revisiones Simultáneas (CVS), con un grupo de desarrolladores principales trabajando en cada sistema para administrar el desarrollo del núcleo. BitKeeper proporcionó un control de revisión distribuido, mientras que CVS era un sistema de control de versiones cliente-servidor que permitía a los desarrolladores «retirar» copias del proyecto, realizar cambios y luego «registrar» sus cambios en el servidor.

A principios de 2005, Larry McVoy, el titular de los derechos de autor de BitKeeper, anunció la revocación de una licencia que permite el uso gratuito del software BitKeeper. Afirmó que Andrew Tridgell, un programador de computadoras australiano que estaba creando software que interoperaba con BitKeeper, había realizado ingeniería inversa del código fuente de BitKeeper y había violado su licencia. Muchos desarrolladores principales de Linux que confiaban en el software gratuito de BitKeeper para desarrollar el kernel de Linux ahora no podían usarlo.

La relación de la Comunidad Linux con BitKeeper no había estado completamente libre de conflictos, pero esperaban una alternativa viable antes de dar el salto para cambiar de BitKeeper. Linus Torvalds, el desarrollador principal del kernel de Linux, comenzó a trabajar en un nuevo VCS después de no ver otras opciones gratuitas que satisfagan sus necesidades. En un correo electrónico a la lista de correo del núcleo, Linus transmitió cómo estaba contento con BitKeeper y lo que había hecho para el desarrollo del núcleo, principalmente porque había ayudado al equipo a mantener una visión mucho más precisa de los cambios y el seguimiento de los conjuntos de cambios. Teniendo en cuenta que aunque BitKeeper no funcionó, fue muy útil para cambiar la forma en que el núcleo se desarrolló para mejor.

Git fue escrito con una filosofía de diseño de kit de herramientas a la par con las herramientas de línea de comandos utilizadas y construidas dentro de la comunidad Linux. Si bien el diseño del kit de herramientas ofreció a los usuarios un acceso más granular y de bajo nivel a gran parte de la funcionalidad de Git, tiene una curva de aprendizaje abrupta para los nuevos usuarios debido al gran conjunto de comandos que pueden ser no intuitivos para muchas personas que no están familiarizadas con la línea de comandos herramientas u otros VCS. Git también carece de su capacidad para vincularse y construirse en otros servicios y aplicaciones. Muchos desarrolladores de aplicaciones que han creado o están construyendo herramientas sobre Git se quejan de la falta de una biblioteca enlazable. El binario de Git no es reentrante, lo que significa que no puede ser interrumpido en el medio de su ejecución y luego ser llamado nuevamente de forma segura. Esto obliga a cualquier aplicación o servicio web a usar el binario para ejecutar una llamada al binario y esperar a que se ejecute completamente antes de volver a llamarlo, lo que afecta negativamente la velocidad de la aplicación. Hay un par de proyectos trabajando para remediar esta falta de una biblioteca enlazable, especialmente libgit2, una implementación de biblioteca enlazable multiplataforma de Git.

Otro conjunto de problemas con Git es su incapacidad para manejar grandes cantidades de archivos o archivos de gran tamaño. Si su proyecto contiene una gran cantidad de archivos que no son de texto, como imágenes, que se actualizan con frecuencia, Git se vuelve muy lento, por lo que el tamaño de repositorio práctico más grande solo unos pocos GB.

Git fue diseñado casi perfectamente para adaptarse a las necesidades que buscaban Linus y el equipo de Linux. Cumplió con todos los requisitos básicos para un VCS que Linus describió, y lo hizo de manera elegante y sencilla para ser lo más eficiente posible cuando se usaba. Si bien hay algunos problemas menores, Git está diseñado bastante bien y continuará siendo el VCS elegido durante muchos años.

Deja tu comentario

Tu dirección de correo electrónico no será publicada.

Campos obligatorios(*)

Política de privacidad de www.recluit.mx

Para recibir la información sobre sus Datos Personales, la finalidad y las partes con las que se comparte,
contacten con el Propietario.