== Ubuntu Open Week - Control de Versiones con Git - Igor Guerrero - Lunes 2 de noviembre de 2009 == {{{#!IRC 02:03 <@igorgue> Ok, hola gente, yo me llamo Igor Guerrero, soy miembro de Ubunt-ni 02:03 <@igorgue> esta session se sale un poco del tema (lo explico dento de un rato) 02:03 <@igorgue> pero es muy importante, porque creo que de las tecnologias actuales, Git es posiblemente una de las mas importantes 02:04 <@igorgue> esta charla, va ser un poco mas interactiva que las anteriores 02:04 <@igorgue> asi que me gustaria que me fueran siguiendo, porque podre algunos comandos 02:05 <@igorgue> basicamente si siguen las instrucciones entenderan un poco mas de lo que es git 02:05 <@igorgue> y para que sirve 02:05 <@igorgue> ok 02:05 <@igorgue> la agenda es la siguiente: 02:06 <@igorgue> 1. Intro 02:06 <@igorgue> 2. Sistema de control de versiones 02:06 <@igorgue> 2.1 Por que es importante 02:06 <@igorgue> 3. Instalar y configurar 02:06 <@igorgue> 4. Demo 02:08 <@igorgue> Intro 02:08 <@igorgue> Git es un sistema de control de versiones distribuido desarrollador inicialmente por Linus Torvals (el mismito) 02:08 <@igorgue> , pero ahora es mantenido por Junio Hamano desde 2005, Git ha tomado mucha fama en los ultimos 3 anios, porque muchos proyectos estan migrado a git 02:08 <@igorgue> basicamente, git 02:08 <@igorgue> se ha convertido en el sistema de control de versiones distribuido mas usado actualemnte 02:09 <@igorgue> esto se debe a muchos factores 02:09 <@igorgue> 1. es rapido 02:09 <@igorgue> 2. es un proyecto activo 02:09 <@igorgue> 3. maduro (o confiable) 02:09 <@igorgue> entre otras cosas... 02:09 <@igorgue> KDE, GNOME, Ruby On Rails, JQuery y por supuesto el kernel de Linux, todos usan git como sistema de control de versiones... 02:10 <@igorgue> pero... 02:10 <@igorgue> Que es un sistema de control de versiones? 02:11 <@igorgue> es increible la cantidad de desarrolladores de software, que en su vida han usado un sistema de control de versiones 02:12 <@igorgue> * me avisan que KDE no se ha pasado a Git (que estan esperando?) es Qt la plataforma de KDE la que esta en Git 02:12 <@igorgue> y tiene mucho que ver... 02:12 <@igorgue> con la educacion que recivimos como ingenieros de software 02:13 <@igorgue> entonces, mucha gente llega a el campo laboral, sin saber que es un sistema de control de versiones o un depurador 02:13 <@igorgue> IDE... 02:13 <@igorgue> Interprete... 02:13 <@igorgue> puedo continuar :) 02:13 <@igorgue> es muy importante saberlo si... 02:13 <@igorgue> OK 02:13 <@igorgue> pero que es? 02:13 <@igorgue> Un sistema de control de versiones es el manejo de los cambios en documentos, archivos, programas, contenidos en una computadora 02:14 <@igorgue> y... 02:14 <@igorgue> por que es importante? 02:14 <@igorgue> una palabra! 02:14 <@igorgue> Colaboracion 02:14 <@igorgue> para tener colaboracion en un equipo, es necesario tener un sistema de control de verisiones 02:14 <@igorgue> al menos en el codigo 02:15 <@igorgue> aunque actualemente 02:15 <@igorgue> el uso de sistemas de control de (*) va mas alla 02:16 <@igorgue> he escuchado de disenadores usando Git 02:16 <@igorgue> es muy importante 02:16 <@igorgue> poder regresar a una version anterior que funcionaba, sin perder tus cambios actuales 02:16 <@igorgue> y eso es el valor del sistema de control de version 02:17 <@igorgue> y es por lo cual en casi todos los proyectos de software libre se usa un sistema de control de version 02:17 <@igorgue> pero... 02:17 <@igorgue> Git es diferente a los demas (o al menos a algunos) 02:17 <@igorgue> Git es un sistema de control de versiones distribuido 02:17 <@igorgue> Por que distribuido? 02:18 <@igorgue> Distribucion (en el aspecto de 1 o mas personas usan un sistema como si fuese uno solo) es uno de los problemas mas complicados de resolver para los programadores, git no solo resuelve el problema de seguir cambios en el contenido de codigo tambien el de distribucion 02:18 <@igorgue> lo que significa, que cada desarrollador 02:19 <@igorgue> que obtiene una copia de un codigo que usa Git, es capaz de hacer cualquier tipo de operaciones 02:20 <@igorgue> sobre ese codigo 02:20 <@igorgue> ok, espero que este claro 02:20 <@igorgue> que es un sistema de control de version y git 02:20 <@igorgue> Git no esta solo 02:21 <@igorgue> tambien esta Bazzar, Mercurial (y otros mas que no recuerdo ahorita) 02:21 <@igorgue> todos distribuidos 02:21 <@igorgue> Ubuntu usa Bazzar 02:21 <@igorgue> Mozilla 02:21 <@igorgue> usa Mercurial 02:21 <@igorgue> Linux (el kernel) usa Git 02:22 <@igorgue> todos proyectos inmensos y no he escuchado muchas quejas que diagamos 02:23 <@igorgue> ok, creo que explique muchos de los conceptos de Git (que en realidad se aplican a casi todos los sistemas de control de versiones distribuidos) 02:24 <@igorgue> me gustaria pasar a preguntas, antes de ir a demo (donde lo vamos a instalar, y jugar un rato con git) 02:24 <@igorgue> n0rman: ? 02:24 <@alucardni> igorgue, ya te paso las preguntas 02:24 <@alucardni> PREGUNTA: En tu opinion personal, GIT es superior a otros Sistemas de Control de Versiones? Por que? 02:25 <@igorgue> no creo que Git sea superior 02:25 <@igorgue> solo es muy bueno, en mi opinion 02:25 <@igorgue> y famoso 02:25 <@igorgue> Git es posiblemente (con miedo a equibocarme) el mas rapido de todos 02:26 <@igorgue> pero de ahi, no te sabria decir cual es mejor 02:26 <@igorgue> yo he usado Bazzar y Mercurial tambien 02:26 <@igorgue> y aunque escritos en Python (Git en C), son muy rapidos 02:26 <@igorgue> entonces, no se, la verdad es que mientras el sistema que uses sea distribuido estas bien en mi opinion 02:27 <@igorgue> [fin] :) 02:27 <@alucardni> PREGUNTA: en que ha utilizado git? 02:27 <@igorgue> en todos mis proyectos de software 02:27 <@igorgue> en mi empresa (que no ha salido a luz todavia) 02:27 <@igorgue> hay un website 02:27 <@igorgue> bien famoso, llamado github, es genial para colaborar con git 02:28 <@igorgue> una vez hice modificaciones a un editor de texto, muy facil y la gente ve tus cambios, bastante orientada a codigo en lugar de al proyecto 02:29 <@alucardni> Que tal buen soporte tiene para archivos binarios, es decir no texto 02:29 <@igorgue> tambien esta gitorious, que es genial :) y tengo un proyecto ahi, y lo genial de gitorious 02:29 <@igorgue> esque es software libre 02:29 <@igorgue> y puedes instalarlo 02:30 <@igorgue> Binarios estan soportados 02:30 <@igorgue> y puedes hacer binary diffs en Git tambien 02:30 <@igorgue> de esa manera lo usan los disenadores web 02:30 <@igorgue> alucardni: mas preguntas? 02:30 <@alucardni> PREGUNTA: tiene utilidad en el usuario común? 02:31 <@igorgue> el directorio /etc 02:31 <@igorgue> o archivos de configuracion de Linux 02:32 <@igorgue> los podrias usar bajo git 02:32 <@igorgue> para asi no perder configuraciones viejas 02:32 <@igorgue> es algo avanzado 02:32 <@igorgue> no mucho para el usuario comun 02:32 <@igorgue> pero no tenes que saber programacion para usar Git 02:32 <@igorgue> alucardni: next! 02:32 <@alucardni> que recursos para aprender sobre git recomiendas ? 02:33 <@igorgue> http://git-scm.com/ <= es el sitio oficial de git 02:33 <@igorgue> hay un libro de git tambien gratis 02:33 <@igorgue> lamentablemente casi todo en ingles 02:33 <@igorgue> http://progit.org/ 02:34 <@igorgue> ese es el libro 02:34 <@igorgue> es gratis leer en linea 02:34 <@igorgue> http://gitcasts.com/ <= en video tambien 02:35 <@igorgue> yo tambinen soy un recurso :) 02:35 <@igorgue> #ubuntu-ni si tienen preguntas luego 02:36 <@igorgue> ok 02:36 <@igorgue> si no hay mas preguntas 02:36 <@igorgue> pasamos al demo 02:36 <@igorgue> que sera algo bien siemple 02:37 <@igorgue> s/siemple/simple/g 02:37 <@igorgue> Instalar y configurar: 02:37 <@igorgue> $ sudo apt-get install git-core 02:37 <@igorgue> ^^ eso instalara git, vale la pena buscar mas paquetes 02:37 <@igorgue> en synaptic 02:38 <@igorgue> porque eso es bien basico, pero funciona para casi todo :) 02:38 <@igorgue> ok, lo primero que van a hacer cuando instalan git 02:39 <@igorgue> es decirle quien sos 02:39 <@igorgue> $ [editor] ~/.gitconfig 02:39 <@igorgue> creara un nuevo archivo 02:40 <@igorgue> en el cual agregan 02:40 <@igorgue> http://gist.github.com/224669 02:40 <@igorgue> algo parecido a eso 02:40 <@igorgue> tambien 02:41 <@igorgue> pueden hacerlo via la linea de comandos 02:41 <@igorgue> $ git config --global user.name "Igor Guerrero" 02:41 <@igorgue> por ejemplo 02:41 <@igorgue> el siguiente paso... 02:42 <@igorgue> es crear un nuevo "repositorio" o "proyecto" 02:42 <@igorgue> $ mkdir ubuntuopenweekgit 02:42 -!- ChanServ changed the topic of #ubuntu-centroamerica to: Bienvenid@s al Ubuntu Open Week en Español del 2 al 6 de Noviembre | mas información en https://wiki.ubuntu.com/UbuntuOpenWeek_ES | recuerde hacer sus preguntas en #ubuntu-centroamerica-chat | Sesión actual: Control de versiones con GIT | Próxima sesión: Crear y Firmar Llaves GPG Martes 3 de Noviembre 22:00 UTC | Para cambiar nickname usar el comando /nick ejemplo: /nick foo 02:42 <@igorgue> $ cd ubuntuopenweekgit 02:42 <@igorgue> $ git init 02:43 <@igorgue> Initialized empty Git repository in /home/igor/ubuntuopenweekgit/.git/ 02:43 <@igorgue> esa sera la salida del comando ^^ 02:43 <@igorgue> despues 02:44 <@igorgue> $ git status 02:44 <@igorgue> # On branch master 02:44 <@igorgue> # 02:44 <@igorgue> # Initial commit 02:44 <@igorgue> # 02:44 <@igorgue> nothing to commit (create/copy files and use "git add" to track) 02:44 <@igorgue> como ven, no hay nada, entonces 02:44 <@igorgue> git te dice, cual es o puede ser el siguiente paso 02:44 <@igorgue> ok, agregemos un archivo 02:44 <@igorgue> pero antes 02:44 <@igorgue> el comando mas importante de git! 02:44 <@igorgue> $ git status 02:44 <@igorgue> :) 02:45 <@igorgue> eso te dice entre otras cosas, que es lo que tenes en tu repo ahorita 02:45 <@igorgue> desde archivos si seguir, archivos a borrar, en cual rama (branch) del codigo estas 02:45 <@igorgue> etc etc 02:45 <@igorgue> la salida 02:45 <@igorgue> seria 02:45 <@igorgue> $ git status 02:45 <@igorgue> # On branch master 02:45 <@igorgue> # 02:45 <@igorgue> # Initial commit 02:45 <@igorgue> # 02:45 <@igorgue> nothing to commit (create/copy files and use "git add" to track) 02:45 <@igorgue> ahorita que no hay nada.... 02:46 <@igorgue> ok 02:46 <@igorgue> ahora 02:46 <@igorgue> creemos un nuevo achivo 02:47 <@igorgue> [editor] README 02:47 <@igorgue> [editor] es donde pondran su editor 02:47 <@igorgue> podria ser gedit 02:47 <@igorgue> kate 02:47 <@igorgue> o vim ;) 02:47 <@igorgue> lo crean y lo guardan 02:47 <@igorgue> cuando dan ahora 02:47 <@igorgue> $ git status 02:47 <@igorgue> # On branch master 02:47 <@igorgue> # 02:47 <@igorgue> # Initial commit 02:47 <@igorgue> # 02:47 <@igorgue> # Untracked files: 02:47 <@igorgue> # (use "git add ..." to include in what will be committed) 02:47 <@igorgue> # 02:47 <@igorgue> # README 02:48 <@igorgue> nothing added to commit but untracked files present (use "git add" to track) 02:48 <@igorgue> como ven 02:48 <@igorgue> git te dice 02:48 <@igorgue> que hay un archivo 02:48 <@igorgue> que hay que agregar 02:48 <@igorgue> o que no esta siendo seguido 02:48 <@igorgue> mi traduccion de "tracked" 02:49 <@igorgue> ok 02:49 <@igorgue> agregemos ese archivo 02:49 <@igorgue> con 02:49 <@igorgue> $ git add README 02:50 <@igorgue> ahora... adivinen? 02:50 <@igorgue> $ git status 02:50 <@igorgue> # On branch master 02:50 <@igorgue> # 02:50 <@igorgue> # Initial commit 02:50 <@igorgue> # 02:50 <@igorgue> # Changes to be committed: 02:50 <@igorgue> # (use "git rm --cached ..." to unstage) 02:50 <@igorgue> # 02:50 <@igorgue> # new file: README 02:50 <@igorgue> # 02:50 <@igorgue> git status :) 02:50 <@igorgue> ahora si 02:50 <@igorgue> dice que hay un archivo nuevo 02:50 <@igorgue> y tambien te dice como quitarlo 02:51 <@igorgue> quitarlo del stage 02:51 <@igorgue> que basicamente es una etapa intermedia 02:51 <@igorgue> en donde pones los archivos 02:51 <@igorgue> antes de ponerlos en el repositorio 02:51 <@igorgue> (el directorio ubuntuopenweekgit) 02:52 <@igorgue> $ git commit -m "primer cambio" 02:52 <@igorgue> [master (root-commit) 8ba8614] primer cambio 02:52 <@igorgue> 1 files changed, 1 insertions(+), 0 deletions(-) 02:52 <@igorgue> create mode 100644 README 02:52 <@igorgue> ya con eso 02:52 <@igorgue> mandamos el primer cambio.... 02:52 <@igorgue> digamos que queremos cambiar el archivo ahora... 02:53 <@igorgue> agregemos mas contenido a el README 02:53 <@igorgue> creo que no mencione que agrege este contenido inicialmente al README 02:53 <@igorgue> $ cat README 02:53 <@igorgue> hola ubuntu open week 02:54 <@igorgue> ok, ahora agregemos mas contenido 02:54 <@igorgue> $ cat README 02:54 <@igorgue> hola ubuntu open week 02:54 <@igorgue> Aprendiendo Git! 02:54 <@igorgue> guardamos... 02:54 <@igorgue> y hacemos un git status 02:55 <@igorgue> $ git status 02:55 <@igorgue> # On branch master 02:55 <@igorgue> # Changed but not updated: 02:55 <@igorgue> # (use "git add ..." to update what will be committed) 02:55 <@igorgue> # (use "git checkout -- ..." to discard changes in working directory) 02:55 <@igorgue> # 02:55 <@igorgue> # modified: README 02:55 <@igorgue> # 02:55 <@igorgue> no changes added to commit (use "git add" and/or "git commit -a") 02:55 <@igorgue> ok 02:55 <@igorgue> agegemoslo 02:55 <@igorgue> agregemoslo 02:56 <@igorgue> primero... 02:56 <@igorgue> lo mejor es hacer git diff 02:56 <@igorgue> $ git diff 02:56 <@igorgue> $ git diff 02:56 <@igorgue> diff --git a/README b/README 02:56 <@igorgue> index 43997d1..6127fe9 100644 02:56 <@igorgue> --- a/README 02:56 <@igorgue> +++ b/README 02:56 <@igorgue> @@ -1 +1,2 @@ 02:56 <@igorgue> hola ubuntu open week 02:56 <@igorgue> +Aprendiendo Git! 02:56 <@igorgue> ahi hay info valiosa 02:57 <@igorgue> como ven 02:57 <@igorgue> se dice que se agrego una nueva linea 02:57 <@igorgue> +Aprendiendo Git! 02:57 <@igorgue> lo cual es genial, eso es bueno tambien 02:58 <@igorgue> antes de poner un cambio en el repositorio 02:58 <@igorgue> es importante saber que estamos cambiando 02:58 <@igorgue> ok 02:58 <@igorgue> ahora 02:58 <@igorgue> $ git add README 02:58 <@igorgue> $ git commit -m "agregado git" 02:58 <@igorgue> [master bbef878] agregado git 02:58 <@igorgue> 1 files changed, 1 insertions(+), 0 deletions(-) 02:59 <@igorgue> $ git log 02:59 <@igorgue> commit bbef8780d691c4f703cb7a23c512c8b010d6c7bd 02:59 <@igorgue> Author: Igor Guerrero Fonseca 02:59 <@igorgue> Date: Mon Nov 2 20:58:46 2009 -0500 02:59 <@igorgue> agregado git 02:59 <@igorgue> commit 8ba8614b16cadeb4056d912f3fd9d63484e52075 02:59 <@igorgue> Author: Igor Guerrero Fonseca 02:59 <@igorgue> Date: Mon Nov 2 20:51:57 2009 -0500 02:59 <@igorgue> primer cambio 02:59 <@igorgue> aqui esta el comando "git log" 02:59 <@igorgue> el cual muestra todo lo que hemos hecho 02:59 <@igorgue> el log :-) 03:00 <@igorgue> lo ultimo que vamos a ver 03:00 <@igorgue> es branching 03:00 <@igorgue> o la creacion de nuevas ramas 03:00 <@igorgue> de codigo 03:00 <@igorgue> es muy importante 03:00 <@igorgue> y la manera en que git lo hace 03:00 <@igorgue> es revolucionaria y es por lo cual muchos (me incluyo) se mueven a git 03:01 <@igorgue> desde Subversion (que es creo que lider) 03:02 <@igorgue> es git branch 03:02 <@igorgue> el comando 03:02 <@igorgue> $ git branch nuevoreadme 03:03 <@igorgue> $ git branch 03:03 <@igorgue> * master 03:03 <@igorgue> nuevoreadme 03:03 <@igorgue> git branch 03:03 <@igorgue> solo 03:03 <@igorgue> dice en cual branch estamos 03:03 <@igorgue> como ven 03:03 <@igorgue> es el "* master" 03:03 <@igorgue> que es en realidad opcional 03:03 <@igorgue> pero la mayoria de proyectos lo usan como la rama de desarrollo 03:03 <@igorgue> ok 03:04 <@igorgue> hagamos un checkout 03:04 <@igorgue> de la nueva rama 03:04 <@igorgue> $ git checkout nuevoreadme 03:04 <@igorgue> Switched to branch 'nuevoreadme' 03:04 <@igorgue> $ git branch 03:04 <@igorgue> master 03:04 <@igorgue> * nuevoreadme 03:04 <@igorgue> ok 03:04 <@igorgue> estamos en este nuevo branch 03:04 <@igorgue> agegemos mas contenido al readme 03:05 <@igorgue> $ cat README 03:05 <@igorgue> hola ubuntu open week 03:05 <@igorgue> Aprendiendo Git! 03:05 <@igorgue> Git es genial! 03:05 <@igorgue> ese es la nueva linea que agege 03:05 <@igorgue> $ git diff 03:05 <@igorgue> diff --git a/README b/README 03:05 <@igorgue> index 6127fe9..45f428c 100644 03:05 <@igorgue> --- a/README 03:05 <@igorgue> +++ b/README 03:05 <@igorgue> @@ -1,2 +1,4 @@ 03:05 <@igorgue> hola ubuntu open week 03:05 <@igorgue> Aprendiendo Git! 03:05 <@igorgue> + 03:05 <@igorgue> +Git es genial! 03:05 <@igorgue> esa es la diferencia 03:06 <@igorgue> ahora agegemoslo y mandemos el cambio 03:06 <@igorgue> $ git add README 03:06 <@igorgue> $ git commit -m "git es genial porque es magia" 03:06 <@igorgue> [nuevoreadme 29f1423] git es genial porque es magia 03:06 <@igorgue> 1 files changed, 2 insertions(+), 0 deletions(-) 03:06 <@igorgue> $ git log 03:07 <@igorgue> les va a decir el nuevo cambio que mandamos 03:07 <@igorgue> ahora biene lo genial... 03:07 <@igorgue> checkout la rama "master" 03:07 <@igorgue> $ git checkout master 03:07 <@igorgue> Switched to branch 'master' 03:07 <@igorgue> $ cat README 03:07 <@igorgue> hola ubuntu open week 03:07 <@igorgue> Aprendiendo Git! 03:07 <@igorgue> como ven 03:08 <@igorgue> la linea que agegamos en el otro branch 03:08 <@igorgue> desaparecio! 03:08 <@igorgue> pero esta en el otro branch 03:08 <@igorgue> no en este 03:08 <@igorgue> eso es muy genial en git 03:08 <@igorgue> los branches 03:08 <@igorgue> o ramas 03:08 <@igorgue> son locales 03:08 <@igorgue> si queremos copiar los cambios del otro branch al master 03:08 <@igorgue> hacemos un merge 03:09 <@igorgue> $ git merge nuevoreadme 03:09 <@igorgue> Updating bbef878..29f1423 03:09 <@igorgue> Fast forward 03:09 <@igorgue> README | 2 ++ 03:09 <@igorgue> 1 files changed, 2 insertions(+), 0 deletions(-) 03:09 <@igorgue> y ya tenemos los cambios que hicimos en el otro lado 03:09 <@igorgue> bueno 03:09 <@igorgue> creo que eso es todo 03:09 <@igorgue> vimos que git 03:10 <@igorgue> 1. es local 03:10 <@igorgue> 2. maneja contenido no archivos 03:10 <@igorgue> 3. es facil de usar 03:10 <@igorgue> si quieren ver algo bueno 03:10 <@igorgue> pueden dar 03:10 <@igorgue> $ gitk 03:11 <@igorgue> ejemplo: http://dl.getdropbox.com/u/421955/ubuntuopenweekgit.png 03:12 <@igorgue> tambien hay otro UI que yo he estado usando 03:12 <@igorgue> llamado 03:12 <@igorgue> cola 03:12 <@igorgue> busquen en synaptic: git cola 03:13 <@alucardni> PREGUNTA: Y como para en que ocsaiones son buena idea los branches? 03:13 <@igorgue> bueno 03:13 <@igorgue> yo uso branches todo el tiempo 03:13 <@igorgue> tengo que implementar algo 03:13 <@igorgue> uso un branch 03:13 <@igorgue> creo que tengo que mantener XYZ codigo 03:13 <@igorgue> hago un branch para mas tarde 03:14 <@igorgue> branches son buenos 03:14 <@igorgue> porque es un punto en tu proyecto al cual podes regresar 03:14 <@alucardni> Tonny> PREGUNTA: Alguna interfaz gráfica para ver las diferencias entre archivos 03:15 <@igorgue> podes usar meld 03:16 <@igorgue> http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy 03:16 <@igorgue> algo viejo 03:16 <@n0rman> < Tonny> Que tal buen soporte tiene para archivos binarios, es decir no texto 03:16 <@igorgue> pero siguen siendo los mismos pasos 03:16 <@alucardni> pregunta: no harán un ejemplo de branches remotos ? trabajo en equipo ? 03:17 <@igorgue> hay binary diffs 03:17 <@igorgue> y estan soportados 03:17 <@igorgue> los archivos binarios 03:17 <@igorgue> no 03:17 <@igorgue> no habra ejemplos de branches remotos... realmente tendria que explicar otras cosas, y tener un servidor o usar gitorious.org o github.com 03:17 <@igorgue> pero... 03:18 <@igorgue> sinceramente 03:18 <@n0rman> < MadGab> PREGUNTA: para trabajar un proyecto en equipo existe algun servidor publico el cual nos permita almacenar 03:18 <@n0rman> nuestro codigo, para no trabajar de manera local con Git? 03:18 <@igorgue> aqui estamos a un paso 03:18 <@igorgue> despues de los commit 03:18 <@igorgue> haces un 03:18 <@igorgue> $ git push remote_alias remote_branch 03:18 <@igorgue> $ git pull remote_alias/remote_branch # para obtener cambios 03:19 <@igorgue> git trabaja localmente, pero podes subir tus cambios a repositorios remotos, expuestos via SSH (que es la manera mas facil) 03:19 <@igorgue> entonces 03:19 <@igorgue> un git url es o podria ser 03:19 <@igorgue> git@server.com:directorio/proyecto.git 03:20 <@igorgue> eso responde la pregunta? 03:21 <@n0rman> < MadGab> PREGUNTA: para trabajar un proyecto en equipo existe algun servidor publico el cual nos permita almacenar nuestro codigo, para no trabajar de manera local con Git? 03:22 <@igorgue> Gitorious.org <= kuadrosx da soporte gratis y cuentas pro gratis tambien (es broma no hay cuentas pro creo ;)) 03:22 <@igorgue> tambien pueden usar github.com pero no es libre (pero permite proyectos no-libres) 03:23 <@n0rman> < jcalderon> PREGUNTA: Como puedo hacer funcionar git para mis archivos de configuración en un servidor ? 03:23 <@igorgue> vas al directorio donde tienes los archivos de conf 03:23 <@igorgue> le das 03:24 <@igorgue> $ git init 03:24 <@igorgue> $ git add [archivos] 03:24 <@igorgue> o si quieres tomar todos los archivos 03:24 <@igorgue> $ git add . 03:24 <@igorgue> $ git commit -m "commit inicial" 03:24 <@igorgue> y ya esta :) 03:24 <@igorgue> puedes copiar el archivo 03:24 <@igorgue> digo 03:24 <@igorgue> el directorio 03:24 <@igorgue> .git 03:25 <@igorgue> para moverlo donde quieras 03:25 <@igorgue> como dice kuadrosx tambien pueden usar el archivo .gitignore para evitar agregar archivos indeseados 03:25 <@igorgue> http://www.kernel.org/pub/software/scm/git/docs/gitignore.html 03:27 <@n0rman> < kikove> Se me ocurre usarlo para la gestion de backups de MySQL, es posible esto 03:27 <@igorgue> de hecho esa idea esta genial 03:28 <@igorgue> si tus backups son SQL statements esta genial 03:28 <@igorgue> SQL statements == sentencias SQL 03:29 <@igorgue> otra pregunta? 03:29 <@n0rman> < n0rman> kuadrosx: das cuentas pro gratis, es cierto? :) 03:30 <@n0rman> :P 03:30 <@n0rman> esa es broma :) 03:30 <@n0rman> jejeje 03:30 <@igorgue> :) 03:30 <@n0rman> gracias igorgue :) 03:30 * n0rman *clap* *clap* 03:30 <@alucardni> ok, gracias igorgue 03:31 <@alucardni> muchas gracias a todos los asistentes }}}