Herramientas de usuario

Herramientas del sitio


informatica:programacion:cursos:control_version_git_avanzado:proposito_alcance_conceptos

Propósito y alcance: Conceptos

Sección perteneciente al curso Control de versiones con Git Avanzado.

Introducción

¿Qué es el control de versiones?

Sistema que monitoriza cambios que se producen en los archivos de un directorio de un disco duro. Registra los cambios en un histórico.

Estos sistemas también permiten que tengamos el código en diferentes ramas y experimentar con él sin “romper” la rama principal para finalmente volcarla a la rama principal y se fusionan las dos versiones del código.

Otra ventaja es que en un mismo proyecto, podemos tener a varios desarrolladores tocando el mismo código. Mediante git se podrán sincronizar todas las versiones para convertirlas en una sola sin que haya problema.

VCS centralizados / distribuidos

En los centralizados (por ejemplo, Subversion) existen los equipos de los desarrolladores y un servidor central que contiene el repositorio. Cada desarrollador se conecta al servidor, Todas las operaciones las hacemos contra el servidor remoto.

En los distribuidos (Git), hay equipos de los desarrolladores y también un servidor central. La diferencia fundamental es que cada máquina tiene una copia del repositorio. Por eso decimos que el repositorio está distribuido. El trabajo con Git es mayoritariamente en local, es decir, con nuestra copia local. Solo nos conectaremos al servidor remoto cuando necesitemos publicar nuestro código o si necesitamos código que haya subido otro desarrollador.

Esto permite que podamos usar Git sin conexión a Internet o problemas con el servidor central.

Este sistema también hace muy difícil que se pueda perder el código ya que este está distribuido por varias máquinas.

Línea de comandos vs. interfaces gráficas

Git está pensado para ser usado desde la línea de comandos.

Sin embargo se han desarrollado herramientas gráficas para facilitar su uso, haciéndolo más visual.

Hay que tener en cuenta que estas interfaces gráficas son una capa intermedia entre el usuario y Git. Es importante entender qué comandos le envía la herramienta gráfica a Git para cuando haya problemas.

Lo recomendable es acostumbrarse a la consola de comandos.

Modelo de branching

Una de las diferencias de Git respecto a otros sistemas de control de versiones son las ramas (branch).

Se trabaja muy rápido con las ramas. Desde Git se recomienda hacer muchas ramas. Cada vez que queramos hacer algo nuevo en nuestro código, creamos una nueva rama a partir de la principal. Trabajaremos en ella y al terminar lo volcaremos en la rama principal y borraremos la secundaria.

Este método de trabajo reduce mucho los conflictos en las fusiones de código. Y los que puedan existir, serán más fáciles de resolver.

Conclusión

No se debe usar Git como si fuera un “Dropbox”. Si vamos haciendo commits de manera lineal, como por sistema para que se guarde el estado, estaremos usando Git como un sistema de backup. Estaríamos desaprovechando el potencial de Git.

Usaremos ramas y decidiremos cuándo hacer commit y cuándo no.

Recursos

informatica/programacion/cursos/control_version_git_avanzado/proposito_alcance_conceptos.txt · Última modificación: por tempwin