Tu Repo Gratis con Github
Git es un Sistema de Control de Versiones(VCS), pero que el Contr ol de Versiones y como puede ayudarnos?
El control de versiones es un sistema que registra los cambios de los archivos dentro de un proyecto en cada instante,esto nos permite obtener una version especifica de algun archivo. Un ejemplo sencillo, Wordpress guarda versiones cada vez que dejas de escribir por 10 seg. para hacer un autoguardado versionado y no perder lo que estas escribiendo. Y podriamos recuperar cada una de las versiones del autoguardado e incluso compararlas para que que fue lo que cambio… Pues de manera general mas o menos asi funciona un Versionado de Codigo nomas que esta mas orientado a manejar proyectos de desarrollo de software.
Un Control de Versiones nos ayuda a revertir cambios a un estado anterior, revertir el proyecto entero a una version funcional, comparar cambios a cada instante, ver las ultimas modificaciones o revisiones, manejar proyectos en equipos de trabajo (Commiters and Editers) y muchas otras caracteristicas que no se dicutiran en este Post.
Sin embargo, para poner en practica el versionado de un proyecto podemos utilizar github.com, este es un servicio gratuito y comercial que nos permite crear repositorios publicos y privados de nuestros proyectos. Utilizan el API de Git para gestionar los archivos con el servicio REST de github y es una manera muy sencilla de aprender a gestionar tus proyectos.
Cuales son los Requisitos para implemetar github.
- Crear una cuenta gratuita en http://github.com/
- Instalar git
- Aprender sobre Git y sus Comandos.
Crear Cuenta github y Generar SSH Key
Creamos una cuenta en github, proporcionando la informacion que nos soliciten, en la cuenta gratuita nos dan 300mb para pruebas.
Luego abrimos la terminal (Linux o Mac) y generamos una clave de SSH para validar el acceso a nuestro repositorio. Para esto agregamos el siguiente codigo.
$ ssh-keygen -t rsa -C "tumail@tuserver.com"
Esto nos responde y cuando nos pida “passphrase” escribimos nuestro password privado para la clave:
Generating public/private rsa key pair. Enter file in which to save the key (/Users/arthurolg/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/arthurolg/.ssh/id_rsa. Your public key has been saved in /Users/arthurolg/.ssh/id_rsa.pub. The key fingerprint is: 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db tumail@tuserver.com
Seguido de esto escribimos lo siguiente, para que nos muestre la clave.
cat /Users/arthurolg/.ssh/id_rsa.pub
Copiamos la clave y nos vamos al github.com y en el menu entramos en Account Settings, y nos vamos a la seccion de SSH Public Keys, le damos click en agregar, en titulo ponermos el correo y en key pegamos la llave generada en el archivo id_rsa.pub.

Instalando Git
En mi caso tengo una MacBook asi que utilice macports.
- Instalar MacPorts que es un instalador de aplicaciones tipo el apt-get o aptitude de Ubuntu solo que para Mac.
- Asegurarse que los ports esten actualizados al dia.
- Instalar Git mediante el siguiente comando:
$ sudo port selfupdate MacPorts base version 1.600 installed Downloaded MacPorts base version 1.600 The MacPorts installation is not outdated and so was not updated selfupdate done! $ sudo port install git-core +svn ---> Installing curl 7.18.2_0 ---> Activating curl 7.18.2_0 ---> Installing openssh 5.0p1_0+darwin_9 ---> Activating openssh 5.0p1_0+darwin_9 ---> Installing p5-error 0.17012_0 ---> Activating p5-error 0.17012_0 ---> Installing popt 1.13_0 ---> Activating popt 1.13_0 ---> Installing rsync 3.0.2_0 ---> Activating rsync 3.0.2_0 ---> Installing git-core 1.5.5.3_0+doc ---> Activating git-core 1.5.5.3_0+doc
o en caso de tener linux simplemente hay que poner
sudo apt-get install git-core
Creando el Repositorio
Ahora nos toca crear el repositorio en github, en el Dashboard damos click en la opcion New Repository; Ahora llenamos la informacion de nuestro proyecto (titulo, descripcion y url) y damos click en create repository.
Ok hasta este punto nos aparecen las opciones de configuracion siguientes:
Global setup:
Download and install Git git config --global user.name "arthuro lopez gomez" git config --global user.email arthurolg@gmail.com
Next steps:
mkdir pyzen cd pyzen git init touch README git add README git commit -m 'first commit' git remote add origin git@github.com:arthurolg/pyzen.git git push origin master
Existing Git Repo?
cd existing_git_repo git remote add origin git@github.com:arthurolg/pyzen.git git push origin master
Creamos nuestra Aplicacion de Ejemplo
Apartir de ahora es puros comandos en la terminal asi que abrimos la terminal.
Configuramos nuestro entorno git con github.com
$git config --global user.name "arthuro lopez gomez" $git config --global user.email arthurolg@gmail.com
Creamos la aplicacion grails de ejemplo
$rails psnix
Accedemos al directorio
$cd psnix
Creamos nuestro repositorio local en blanco
$git init
Creamos un archivo de configuracion para omitir archivos que no queremos subir al repo.
$vi .gitignore
En mi caso, omito la informacion de la base de datos, los logs y los temporales, mi archivo queda asi.
config/database.yml logs/* temp/*
Guardo el archivo y ahora agregamos los archivos para el commit
$git add .
Creamos el primer listado de archivos para el commit
$git commit -m 'primer commit con el esqueleto de rails'
Le decimos a git donde esta el servidor del repositorio.
$git remote add origin git@github.com:arthurolg/pyzen.git
Sube los archivos al branch Master.
$git push origin master
Una vez que termine de subir los archivos vamos a github.com y podremos ver el Branch Master con nuestro comentario.
Tambien tenemos la informacion del commit, del tree (arbol) y el listado de los archivos que subimos.
Ahora probamos la actualizacion de archivos, modificamos el archivio config/rules.rb, le borramos los comenatios y guardamos el archivo.
Y tambien creamos un archivo que se llame AUTHOR con vi AUTHOR y le agregamos cualquier cosa… guardamos y
Corremos el siguiente comando para verificar los cambios:
$git status
y nos regresa lo siguiente:
# On branch master # Changed but not updated: # (use "git add..." to update what will be commited) # (use "git checkout -- ..." to discard changes in working directory) # # modified: routes.rb # ....................... # Untracked files: # (use "git add ..." to update what will be commited) # # AUTHOR # ......................
Ok aqui nos arroja todas las modificaciones o nuevos archivos.
Ya solo tendriamos que incluir el Archivo AUTHOR
$git add AUTHOR
y entonces hacemos commit al codigo.
$git commit -a -m 'Primer Commit de Codigo' $git push origin master
Y listo ya tendriamos nuestro esqueleto de Rails en el Repositorio, por ahora es todo en esta breve introduccion a github. Cabe mencionar que github es el repositorio de proyectos como: Rails, Scriptaculous, Cucumber, Blueprint, Compass entre otros miles de proyectos.
