Bueno hablemos de Git, ya que es una herramienta de software libre y abierto, sistema distribuido de control de versiones diseñado para manejar todo, desde los pequeños proyectos hasta los mas grandes con velocidad y eficiencia.
Cada clon Git es un repositorio de pleno derecho con la historia completa y todas las capacidades de seguimiento de la revisión, no depende de acceso a la red o un servidor central. ramas y merge, es rápido y fácil de hacer.
Podemos ver mas información al respecto en su página official: http://git-scm.com/
Entonces definimos de esta manera desde nuestra fuente de wikipedia:
Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de archivos de código fuente. Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran escribir la interfaz de usuario o front end como Cogito o StGIT. Sin embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena. Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación del núcleo Linux.
SUS CARACTERISTICAS
El diseño de Git se basó en BitKeeper y en Monotone. 4 5
El diseño de Git resulta de la experiencia del diseñador de Linux, Linus Torvalds, manteniendo una enorme cantidad de código distribuida y gestionada por mucha gente, que incide en numerosos detalles de rendimiento, y de la necesidad de rapidez en una primera implementación.
Entre las características más relevantes se encuentran:
- Fuerte apoyo al desarrollo no-lineal, por ende rapidez en la gestión de ramas y mezclado de diferentes versiones. Git incluye herramientas específicas para navegar y visualizar un historial de desarrollo no-lineal. Una presunción fundamental en Git es que un cambio será fusionado mucho más frecuentemente de lo que se escribe originalmente, conforme se pasa entre varios programadores que lo revisan.
- Gestión distribuida. Al igual que Darcs, BitKeeper, Mercurial, SVK, Bazaar y Monotone, Git le da a cada programador una copia local del historial del desarrollo entero, y los cambios se propagan entre los repositorios locales. Los cambios se importan como ramas adicionales y pueden ser fusionados en la misma manera que se hace con la rama local.
- Los almacenes de información pueden publicarse por HTTP, FTP, rsync o mediante un protocolo nativo, ya sea a través de una conexión TCP/IP simple o a través de cifrado SSH. Git también puede emular servidores CVS, lo que habilita el uso de clientes CVS pre-existentes y modulos IDE para CVS pre-existentes en el acceso de repositorios Git.
- Los repositorios Subversion y svk se pueden usar directamente con git-svn.
- Gestión eficiente de proyectos grandes, dada la rapidez de gestión de diferencias entre archivos, entre otras mejoras de optimización de velocidad de ejecución.
- Todas las versiones previas a un cambio determinado, implican la notificación de un cambio posterior en cualquiera de ellas a ese cambio (denominado autenticación criptográfica de historial). Esto existía en Monotone.
- Resulta algo más caro trabajar con ficheros concretos frente a proyectos, eso diferencia el trabajo frente a CVS, que trabaja con base en cambios de fichero, pero mejora el trabajo con afectaciones de código que concurren en operaciones similares en varios archivos.
- Los renombrados se trabajan basándose en similitudes entre ficheros, aparte de nombres de ficheros, pero no se hacen marcas explícitas de cambios de nombre con base en supuestos nombres únicos de nodos de sistema de ficheros, lo que evita posibles, y posiblemente desastrosas, coincidencias de ficheros diferentes en un único nombre.
- Realmacenamiento periódico en paquetes (ficheros). Esto es relativamente eficiente para escritura de cambios y relativamente ineficiente para lectura si el reempaquetado (con base en diferencias) no ocurre cada cierto tiempo.
Entonces comenzemos pues:
Necesitas instalarlo fácil: Abre la consola y escribe el siguiente script como super usuario.
#aptitude install git (a su ves se instalan algunas dependencias necesarias como git-core)
Ahora hay una serie de comandos (commands) super necesarios para el manejo de git… Como suelen ser…
–> git init
–> git add
–> git push
–> git pull
–> git status
–> git commit
Entonces Primeros haremos un ejemplo sencillo para que vean mas o menos como se come el maní…
Crear un repositorio sobre un proyecto Cual_sea_tu_proyecto
$ mkdir miproyecto
$ cd miproyecto
Iniciamos el repositorio
$ git init
Agregamos todos los archivos del directorio ( “.” significa “todos”) al repositorio. Esto debemos hacerlo ya sea por archivo que cambie o para todo el directorio como en este caso.
$ git add .
podemos verificar el estado de los archivos que cambiaron (en este momento “todos cambiaron”)
$ git status
realizamos un commit a nuestro repositorio, incluyendo un mensaje sobre nuestros cambios
$ git commit -a -m "Subiendo por primera vez el repo"
y eso es todo!!! Si en este momento realizamos cualquier cambio a nuestros archivos el repositorio inicia a registrarlos. Si deseamos ver que archivos cambiaron solo ejecutamos:
$ git status
y para guardar los archivos que cambiaron al repositorio volvemos a hacer:
$ git commit -a -m "Cambios en tal y tal cosa..."
Ignorar archivos
Debido a que hay archivos en Rails que crecen mucho y que realmente no son necesarios para compartir el fuente, existe la posibilidad de generar ciertos que permiten hacer eso.
creamos un archivo .gitignore
$ touch .gitignore
agregamos este contenido a .gitignore
.DS_Store
log/*.log
tmp/**/*
config/database.yml
db/*.sqlite3
Atención!!! Git tiene la característica de ignorar por default cualquier directorio que este vacio. Por lo cual si deseamos que el directorio vendor, log y tmp sean incluidos debemos de tener algo en ellos. Si no tenemos nada siempre podemos crear un archivo .gitignore dentro de ellos.
$touch tmp/.gitignore log/.gitignore vendor/.gitignore
Esto es lo mas sencillo de GIT, la idea de git es establecer un repo de modo que si se formateo la unidad, perdistes datos, lo tengas guardado en un repositorio aparte para tu proyecto por eso se ofrecen estas herramientas como desarrolladores. Ahora si lo quieres tener en la nube utilizamos una herramienta muy comúnmente utilizada en estos días como lo son http://gitorious.com/ y https://github.com/…
En mi siguiente POST explicare como utilizar git en gitorious.. Saludos desde Maracay-Venezuela El jardin de nuestra tierra soberana…
Eliezer Romero Su servidor… Porque ante todas estas cosas somos más que vencedores por medio de aquel que nos amo…. Romanos 8:37
