Repositorio personal con Git y Dropbox

17 02 2012

Como muchos tengo ideas que se vuelven en proyectos pequeños personales, lo idóneo es tener un repositorio, en la que encarecidamente sugiero Git; en algunas ocaciones se quiere tener el repositorio en lugar no tan accesible para las personas, o bien hacer “Desarrollo en Solo”, por lo que ésta es una de las soluciones:

Obtener una cuenta de Dropbox, para los que no saben que es: una carpeta mágica en tu computadora (Linux, Windows, Mac), donde todo lo que coloques ahí va a estar automaticamente en internet (Nube), con la única limitante del espacio, que al fin y al cabo no es un problema mayor ya que se puede expandir de manera gratis o de pago. Nada mas de descargarlo de http://db.tt/ldy9CHA y crear la cuenta.

Luego tener instalado Git:

  • si se está en Mac éste viene por defecto
  • para windows recomiendo cygwin o bien éste paquete http://code.google.com/p/msysgit/
  • para linux normalmente se instala en el repositorio.

Cuando ya está todo instalado, lo ideal es abrir la consola:

$ cd ~/Dropbox
$ mkdir proyecto.git
$ cd proyecto.git
$ git init --bare

Lo que hace éste comando es crear un repositorio “Bare”: clonar y hacer “push” de cambios sin posiblidad de modificar el repositorio directamente, casí como el repositorio de SVN, normalmente éste proceso va a hacer que el Dropbox comience a sincronizar, para luego hay que clonar (hacer una copia) del repositorio donde se quiera:

$ git clone ~/Drobpox/proyecto.git

Éste crea una carpeta llamada “proyecto” en la cual ya es un repositorio de Git, en la carpeta hay “proyecto.git” hay archivos presentes pero son exclusivos de repositorio y no recomiendo modificarlos; después hay que crear un archivo hacerle commit y subirlo al repositorio de donde hicimos clone:

$ cd proyecto
$ echo "hello world" > archivo.txt
$ git add archivo.txt
$ git commit -m "Importado inicial"

Ya tenemos el primer archivo en el repositorio, pero está local, para subirlo al “servidor” hay que hacerle push, para ello es necesario solo la primera vez se determinar el origen:

$ git push origin master

Ahora cada vez que se quiera hacer un “push” nada mas se ejecuta:

$ git push

Por otro lado si tienes varias máquinas con Dropbox instalado, puedes hacer el clon y trabajar tranquilamente, cuando termines haces un push; si bien quieres obtener los últimos cambios del repositorio central se hace un “pull”:

$ git pull

Con eso tendríamos sólo una pincelada para trabajar con repositorios con Dropbox, yo por mi parte, tengo mi maquina de la casa y la laptop, mis proyectos los tengo en Dropbox y me la paso haciendo commits, pull y push. 🙂

Anuncios




Usando control de versiones

15 08 2008

Unas de las paradigmas más modernas de desarollo es utilizar el control de versiones, últimamente he utilizado el SVN porque es el que siempre me han dicho que utilice, además tenia un servidor al cual acceder, luego anteriormente leí sobre git al respecto y me llamó la antención pero no tanto como para comenzar a utilizarlo.

Hoy en el trabajo me sugirieron que utilizara git, para que matuviera el orden en el proyecto, la sugerencia nació porque yo quiero poder trabajar en la oficina asi como en la casa y también se quería tener todas las propiedades de manejo de control de versiones, otras propiedades que tiene git sobre svn:

  • El repositorio de git es una carpeta oculta (.git) en directorio raiz del proyecto, por lo que permite portabilidad (copiarlo al usb)y ahi está todo lo necesario para que git lo interprete.
  • Git solo necesita las herramientas para administrar el repositorio y no es un servidor como tal, por otro lado también da flexibilidad para poder trabajar de manera colaborativa.
  • Git es sumamente rápido y los commit se han de manera local y luego si se, se quiere se hace un push de los cambios entre repositorios o bien merge entre branches.
  • Me han comentado que cuando muchos usuarios acceden al SVN existe la posibilidad de que el repositorio se corrompa y por medio de Hacks se puede recuperar pero no en todos los casos.

Ya solo queda seguirlo utilizando 😉