馃搾
Git
  • Qu茅 es Git
  • Por qu茅 Git para su organizaci贸n
  • Como instalar GIT
  • Claves SSH
  • Configuraci贸n de un repositorio
  • sincronizaci贸n de git
    • git remoto
    • git fetch
    • git push
    • git pull
  • Gitflow
Powered by GitBook
On this page
  • Rendimiento
  • Seguridad
  • Flexibilidad
  • Control de versiones con Git
  • Git es un est谩ndar de facto
  • Git es un proyecto de c贸digo abierto de calidad
  • GIT vs. SVN

Was this helpful?

Qu茅 es Git

Rendimiento / Seguridad / Flexibilidad / Control de versiones con Git

Hoy en d铆a, Git es, con diferencia, el sistema de control de versiones moderno m谩s utilizado del mundo. Git es un proyecto de c贸digo abierto maduro y con un mantenimiento activo que desarroll贸 originalmente Linus Torvalds, el famoso creador del kernel del sistema operativo Linux, en 2005. Un asombroso n煤mero de proyectos de software dependen de Git para el control de versiones, incluidos proyectos comerciales y de c贸digo abierto. Los desarrolladores que han trabajado con Git cuentan con una buena representaci贸n en la base de talentos disponibles para el desarrollo de software, y este sistema funciona a la perfecci贸n en una amplia variedad de sistemas operativos e IDE (entornos de desarrollo integrados).

Git, que presenta una arquitectura distribuida, es un ejemplo de DVCS (sistema de control de versiones distribuido, por sus siglas en ingl茅s). En lugar de tener un 煤nico espacio para todo el historial de versiones del software, como sucede de manera habitual en los sistemas de control de versiones anta帽o populares, como CVS o Subversion (tambi茅n conocido como SVN), en Git, la copia de trabajo del c贸digo de cada desarrollador es tambi茅n un repositorio que puede albergar el historial completo de todos los cambios.

Adem谩s de contar con una arquitectura distribuida, Git se ha dise帽ado teniendo en cuenta el rendimiento, la seguridad y la flexibilidad.

Rendimiento

Las caracter铆sticas b谩sicas de rendimiento de Git son muy s贸lidas en comparaci贸n con muchas otras alternativas. La confirmaci贸n de nuevos cambios, la ramificaci贸n, la fusi贸n y la comparaci贸n de versiones anteriores se han optimizado en favor del rendimiento. Los algoritmos implementados en Git aprovechan el profundo conocimiento sobre los atributos comunes de los aut茅nticos 谩rboles de archivos de c贸digo fuente, c贸mo suelen modificarse con el paso del tiempo y cu谩les son los patrones de acceso.

A diferencia de algunos programas de software de control de versiones, Git no se deja enga帽ar por los nombres de los archivos a la hora de determinar cu谩l deber铆a ser el almacenamiento y el historial de versiones del 谩rbol de archivos; en lugar de ello, se centra en el contenido del propio archivo. Al fin y al cabo, los archivos de c贸digo fuente se cambian de nombre, se dividen y se reorganizan con frecuencia. El formato de objeto de los archivos del repositorio de Git emplea una combinaci贸n de codificaci贸n delta (que almacena las diferencias de contenido) y compresi贸n, y guarda expl铆citamente el contenido de los directorios y los objetos de metadatos de las versiones.

Su arquitectura distribuida tambi茅n permite disfrutar de importantes ventajas en t茅rminos de rendimiento.

Por ejemplo, supongamos que una desarrolladora, Alice, hace cambios en el c贸digo fuente (a帽ade una funci贸n para la pr贸xima versi贸n 2.0) y, luego, los confirma con mensajes descriptivos. Despu茅s, trabaja en una segunda funci贸n y confirma tambi茅n esos cambios. De forma natural, estos se almacenan como elementos independientes de trabajo en el historial de versiones. A continuaci贸n, Alice cambia a la rama de la versi贸n 1.3 del mismo software para corregir un error que afecta 煤nicamente a esa versi贸n anterior. El objetivo es permitir al equipo de Alice lanzar una publicaci贸n de correcci贸n de errores, la versi贸n 1.3.1, antes de que la 2.0 est茅 lista. Tras ello, Alice puede volver a la rama 2.0 para seguir trabajando en las nuevas funciones de la versi贸n. Todo esto puede tener lugar sin necesidad de acceso a la red y, por consiguiente, es un proceso r谩pido y fiable. Alice podr铆a incluso hacerlo mientras viaja en avi贸n. Cuando est茅 lista para enviar al repositorio remoto todos los cambios confirmados de modo individual, bastar谩 con que utilice un solo comando.

Seguridad

Git se ha dise帽ado con la principal prioridad de conservar la integridad del c贸digo fuente gestionado. El contenido de los archivos y las verdaderas relaciones entre estos y los directorios, las versiones, las etiquetas y las confirmaciones, todos ellos objetos del repositorio de Git, est谩n protegidos con un algoritmo de hash criptogr谩ficamente seguro llamado "SHA1". De este modo, se salvaguarda el c贸digo y el historial de cambios frente a las modificaciones accidentales y maliciosas, y se garantiza que el historial sea totalmente trazable.

Con Git, puedes tener la certeza de contar con un aut茅ntico historial de contenido de tu c贸digo fuente.

Algunos otros sistemas de control de versiones carecen de protecci贸n contra las modificaciones ocultas realizadas con posterioridad, algo que puede suponer una grave vulnerabilidad de seguridad de la informaci贸n para cualquier organizaci贸n que se base en el desarrollo de software.

echo -n hello | git hash-object --stdin
>b6fc4c620b67d95f953a5c1c1230aaab5db5a1b0

Flexibilidad

Uno de los objetivos clave de Git en cuanto al dise帽o es la flexibilidad. Git es flexible en varios aspectos: en la capacidad para varios tipos de flujos de trabajo de desarrollo no lineal, en su eficiencia en proyectos tanto grandes como peque帽os y en su compatibilidad con numerosos sistemas y protocolos.

Git se ha ideado para posibilitar la ramificaci贸n y el etiquetado como procesos de primera importancia (a diferencia de SVN) y las operaciones que afectan a las ramas y las etiquetas (como la fusi贸n o la reversi贸n) tambi茅n se almacenan en el historial de cambios. No todos los sistemas de control de versiones ofrecen este nivel de seguimiento.

Control de versiones con Git

Git es la mejor opci贸n para la mayor铆a de los equipos de software actuales. Aunque cada equipo es diferente y deber铆a realizar su propio an谩lisis, aqu铆 recogemos los principales motivos por los que destaca el control de versiones de Git con respecto a otras alternativas:

Git es una excelente herramienta

Git tiene la funcionalidad, el rendimiento, la seguridad y la flexibilidad que la mayor铆a de los equipos y desarrolladores individuales necesitan. Estas cualidades de Git se detallan m谩s arriba. En las comparaciones directas con gran parte de las dem谩s alternativas, Git resulta muy ventajoso para muchos equipos.

Git es un est谩ndar de facto

Git es la herramienta con el mayor 铆ndice de adopci贸n de su clase, lo que la hace muy atractiva por las siguientes razones. En Atlassian, casi todo el c贸digo fuente de los proyectos se gestiona en Git.

Un gran n煤mero de desarrolladores ya tienen experiencia con Git y una parte importante de los graduados universitarios puede que solo haya aprendido a usar dicha soluci贸n. Aunque algunas organizaciones puedan necesitar escalar la curva de aprendizaje al migrar a Git desde otro sistema de control de versiones, muchos de sus desarrolladores actuales y futuros no precisan de formaci贸n para utilizar esta herramienta.

Si eres un desarrollador sin experiencia que quiere adquirir valiosas destrezas con herramientas de desarrollo de software, en lo que se refiere al control de versiones, Git deber铆a estar en tu lista.

Git es un proyecto de c贸digo abierto de calidad

Git es un proyecto de c贸digo abierto muy bien respaldado con m谩s de una d茅cada de gesti贸n de gran fiabilidad. Los encargados de mantener el proyecto han demostrado un criterio equilibrado y un enfoque maduro para satisfacer las necesidades a largo plazo de sus usuarios con publicaciones peri贸dicas que mejoran la facilidad de uso y la funcionalidad. La calidad del software de c贸digo abierto resulta sencilla de analizar y un sin n煤mero de empresas que dependen en gran medida de esa calidad.

Git goza de una amplia base de usuarios y de un gran apoyo por parte de la comunidad. La documentaci贸n es excepcional y para nada escasa, ya que incluye libros, tutoriales y sitios web especializados, as铆 como podcasts y tutoriales en v铆deo.

El hecho de que sea de c贸digo abierto reduce el coste para los desarrolladores aficionados, puesto que pueden utilizar Git sin necesidad de pagar ninguna cuota. En lo que respecta a los proyectos de c贸digo abierto, no cabe duda de que Git es el sucesor de las anteriores generaciones de los exitosos sistemas de control de versiones de c贸digo abierto, SVN y CVS.

GIT vs. SVN

SVN

GIT

Control de versiones

Centralizada

Distribuida

Repositorio

Un repositorio central donde se generan copias de trabajo

Copias locales del repositorio en las que se trabaja directamente

Autorizaci贸n de acceso

Dependiendo de la ruta de acceso

Para la totalidad del directorio

Seguimiento de cambios

Basado en archivos

Basado en contenido

Historial de cambios

Solo en el repositorio completo, las copias de trabajo incluyen 煤nicamente la versi贸n m谩s reciente

Tanto el repositorio como las copias de trabajo individuales incluyen el historial completo

Conectividad de red

Con cada acceso

Solo necesario para la sincronizaci贸n

NextPor qu茅 Git para su organizaci贸n

Last updated 4 years ago

Was this helpful?

Adem谩s de las ventajas que brinda disponer de una amplia base de talentos, el predominio de Git tambi茅n implica que muchos servicios y herramientas de software de terceros ya est谩n integrados con Git, incluidos los IDE, tambi茅n herramientas, tales como el cliente de escritorio de DVCS, ; el software de seguimiento de proyectos e incidencias, ; y el servicio de alojamiento de c贸digo, .

Sourcetree
Jira
Bitbucket