You are on page 1of 6

Introduccin a GitHub

Introduccin
ste paper est orientado nicamente a la explicacin de mi modalidad de trabajo, que es una de las tantas posibles, adems est orientado a resumir cosas para mi compaero de trabajo que no conoce git. Basar este pdf en github porque es el proveedor de repositorios que usaremos, y usaremos en general su aplicacin para trabajar (Git Shell). Bueno eso es todo, espero que el lector aprecie la simplicidad del pdf.

Introduccin breve a GIT


Git es un sistema de versiones que permite controlar y programar en conjunto con varias personas, originalmente diseado para trabajar sobre el desarrollo de Linux. Git presenta un trabajo en ramas, donde en cada rama se puede manipular una versin diferente del cdigo.

Introduccin a RAMAS (Branch)


En la rama principal o MASTER se puede apreciar el cdigo final o el resultado de todas las modificaciones hechas al cdigo por las distintas versiones. En otras palabras en git hay ramas, las ramas son versiones de un cdigo, por ejemplo si estamos trabajando en una tienda, y se le quisiera agregar un apartado de noticias, se crea una rama de noticias y en esa rama estar todo el cdigo original que se encuentra en master, luego se irn haciendo las modificaciones que tengan que ver con las noticias y sern guardadas en la rama noticias. Pero si ustedes cambian a la rama MASTER podrn ver que el cdigo no sufri cambios, y si hay otra rama que trabaja con modificaciones al panel de administracin, esa rama tampoco sufrir cambios. Una vez que se termina de desarrollar una rama, esta es integrada o se le hace un merge que es lo mismo para ste caso, y la rama master contendr todas las modificaciones que se hicieron respecto a las noticias.

En resumen en las ramas se puede trabajar con todo el cdigo sin afectar a otras ramas que quieran modificar otra cosa. Para ejemplificarlo, si yo tengo mi cdigo del shop en la rama MASTER, y necesito agregarle noticias y administracin, creo dos ramas, en las 3 ramas voy a tener el mismo cdigo, cuando realice modificaciones que tengan que ver con noticias, las guardar en la rama de noticias, y solo sern guardadas en esa rama, por lo que master seguir igual, esto permite que si met la pata, otras ramas o personas que trabajan en otra cosa no se vean afectadas. Esa es la idea de ramas. En mi forma de trabajar solo hay dos ramas, la MASTER y la develop, en la rama maestra se aprecia el cdigo funcional y estable de la versin actual, y en la rama develop se irn incorporando cambios hasta que los cambios previstos estn listos y se integran a la rama master, luego se continan las modificaciones agregndolas en la rama develop y cuando estn listas nuevas modificaciones, se integran a la rama MASTER, siempre en la rama master tendremos la ltima versin que est funcionando, y en la rama develop tendremos el cdigo que est a medio hacer, o no fue probado.

Servidor Cliente
Una de las ideas de github es que cada persona del equipo siempre tenga el cdigo actualizado, por lo que todas las modificaciones se van guardando en el servidor. Nosotros tenemos un cliente en nuestra computadora, y cada vez que entremos al cliente actualizaremos nuestro cdigo para tener la ltima versin, y empezaremos a programar, cuando terminemos de hacer lo que hicimos, nosotros enviaremos los cambios al servidor, y si todos los miembros del equipo hacen esto, siempre tendrn la ltima versin.

Empezando con GIT


ESTO SOLO DEBE SER HECHO LA PRIMERA VEZ QUE INSTALAS EL PROGRAMA Github tiene dos formas de trabajarlo, la versin visual, y la versin de consola, yo en lo personal uso la versin sin interfaz grfica, se llama gitshell. Lo primero que tenes que hacer es tener instalado el programa y tener una cuenta en github, debes tener permisos para trabajar en un repositorio de otra persona, por lo que debes pasarle los datos y pedirle que te agregue al proyecto (aunque siempre puedes crear tu propia versin del proyecto de otro clonando el proyecto y metindolo en un repositorio propio, aunque esto no va al caso porque esta gua est orientada a mi colaborador y yo ya tengo armado el repo.)

Copiando el repositorio Una vez que tengas acceso al repositorio, lo que vas a hacer es copiarlo, debes abrir git-shell y moverte con cd hasta la ubicacin donde querrs poner los archivos (yo por ejemplo lo tengo ubicado en htdocs de mi localhost). Escribirs el comando: git init para inicializar git. git remote add origin (y ah pons la url del repo) que en el caso del shop de smf sera esto: https://github.com/alexander171294/smfshop.git quedando el comando as: git remote add origin https://github.com/alexander171294/smfshop.git Una vez que hallas hecho este paso, ya deberas tener en la carpeta los archivos del proyecto. Probablemente haya creado una carpeta llamada smfshop y adentro el proyecto, asique debes moverte dentro de esa carpeta con cd smfshop.Configurando la clave SSH Vas a escribir esto: ssh-keygen -t rsa -C your_email@example.com ah debes cambia rese email por el email que tienes en github. Presionas enter y te dir algo as como: Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): Ah presionas enter. Enter passphrase (empty for no passphrase): Cuando te diga eso escribirs tu contrasea (aunque no te la muestre ni te muestre asteriscos se est escribiendo.) Lugo te pedir que vuelvas a escribir tu contrasea. Una vez que est terminado te dir que cre la clave ssh # Your identification has been saved in /c/Users/you/.ssh/id_rsa. # Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub. # The key fingerprint is:

# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com Algo as ms o menos, tienes que ir a la carpeta donde te figura que est el archivo id_rsa.pub y abrirlo con un editor de texto, copiar todo el contenido e ir a la pgina de github, entrar a la configuracin de tu cuenta, y en el men hay un boto que dice SSH-KEYS, tienes que presionar ah, y luego donde dice Add SSH Key. Pegas en ese cuadrado de texto lo que copiaste de ese archivo, y le pones un nombre como te pide ah, lo guardas y listo, hasta ac tenemos configurada la clave SSH que es lo primero para que github te identifique cuando te quieras conectar. Configurando datos Para finalizar con la configuracin lo que vamos a hacer es poner los siguientes dos comandos: git config --global user.email "alexander171294@live.com" git config --global user.name "alexander171294" Cambia eso por tus datos. Para verificar que todo est listo, vas a escribir git push origin master Te pedir el nombre de usuario y contrasea de git, si no tira ningn error y te dice: Everything up-to-date Es que hasta ahora todo sali bien.

Moverse de rama.
Como dije en nuestro proyecto hay solo dos ramas, develop que guarda todos los cambios y master que tiene la versin actual estable, los cambios los realizaremos en la rama develop por lo que SIEMPRE debes estar en dicha rama, fjate que entre corchetes te debe decir [master] y tu deberas estar en [develop], para lo cual tienes que escribir git checkout develop con ese comando te puedes mover de rama.

Verificando que todo est al da


Todos los das debes actualizar tu versin y enviar los cambios que hayas realizado cuando termines de hacer algo. Es recomendable solo hacer esto una vez al da, cuando enciendes tu pc por la maana escribes git pull origin develop y obtendrs todos los cambios hechos en la rama

develop (si te dice Already up-to-date) es que desde la ltima vez no se han realizado cambios. Cuando hayas hecho todos los commits al final del da, y no vayas a hacer modificaciones, puedes enviar todos tus cambios para que queden asentados en el servidor escribiendo git push origin develop (aunque tambin puedes hacerlo cada cierta cantidad de commits), los commits los explicar en el siguiente apartado.

Guardando cambios
Los commits para que el lector me entienda, son prcticamente lo que podra ser archivo->guardar de un editor de texto, solo que registran una serie de cambios y les ponen un ttulo, cuando realices una serie de cambios en archivos, por ejemplo arreglas un error modificando algunos archivos, entonces guardas los archivos, vas a la consola y le avisas a git que realizaste los cambios y le pones una descripcin diciendo arregl tal cosa. Para eso pones git commit a msg arregl tal cosa y presionas enter xD. Previamente debes poner git add . si, incluido el punto, para que especifique que archivos van a entrar en el commit, el punto hace que entren todos los archivos, pero para los que recin estn empezando con esto, algunas cosas las omito porque son demasiado para alguien que recin empieza.

Resumen
La primera vez creas la clave ssh, clonas el repositorio y configuras tus datos en la consola (esto solo cuando instalaste el git por primera vez, luego no debes hacerlo ms). Cuando vas a empezar a hacer una serie de modificaciones primero obtienes la versin actual del cdigo poniendo: Git pull origin develop Y luego cada vez que hagas una modificacin por ejemplo arreglar algo haces un commit, luego modificas otra cosa, haces otro commit, luego modificas otra cosa haces otro commit, para hacer un commit les recuerdo que es de esta forma: git add . git commit a msg arregl tal cosa

Una vez que finalizas todas tus modificaciones envas todos los commits para que queden acentados en el servidor. Git push origin develop Pones tu usuario y contrasea y esperas hasta que termine de subir todo al server.

Notas finales
Esto es una gua muy recontra resumida, faltan muchsimas cosas que se deben explicar, pero la idea de este pequeo pdf es introducir a los conceptos minimos para que algn ayudante pueda colaborar en un repositorio git. Un saludo y espero que les sirva.

Visita http://underc0de.org Documento escrito por el equipo de UnderC0de++