Git

Ubuntu Open Week - Control de Versiones con Git - Igor Guerrero - Lunes 2 de noviembre de 2009

   1 02:03 <@igorgue> Ok, hola gente, yo me llamo Igor Guerrero, soy miembro de Ubunt-ni
   2 02:03 <@igorgue> esta session se sale un poco del tema (lo explico dento de un rato)
   3 02:03 <@igorgue> pero es muy importante, porque creo que de las tecnologias actuales, Git es posiblemente una de las mas importantes
   4 02:04 <@igorgue> esta charla, va ser un poco mas interactiva que las anteriores
   5 02:04 <@igorgue> asi que me gustaria que me fueran siguiendo, porque podre algunos comandos
   6 02:05 <@igorgue> basicamente si siguen las instrucciones entenderan un poco mas de lo que es git
   7 02:05 <@igorgue> y para que sirve
   8 02:05 <@igorgue> ok
   9 02:05 <@igorgue> la agenda es la siguiente:
  10 02:06 <@igorgue> 1. Intro
  11 02:06 <@igorgue> 2. Sistema de control de versiones
  12 02:06 <@igorgue> 2.1 Por que es importante
  13 02:06 <@igorgue> 3. Instalar y configurar
  14 02:06 <@igorgue> 4. Demo
  15 02:08 <@igorgue> Intro
  16 02:08 <@igorgue> Git es un sistema de control de versiones distribuido desarrollador inicialmente por Linus Torvals (el mismito)
  17 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
  18 02:08 <@igorgue> basicamente, git
  19 02:08 <@igorgue> se ha convertido en el sistema de control de versiones distribuido mas usado actualemnte
  20 02:09 <@igorgue> esto se debe a muchos factores
  21 02:09 <@igorgue> 1. es rapido
  22 02:09 <@igorgue> 2. es un proyecto activo
  23 02:09 <@igorgue> 3. maduro (o confiable)
  24 02:09 <@igorgue> entre otras cosas...
  25 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...
  26 02:10 <@igorgue> pero...
  27 02:10 <@igorgue> Que es un sistema de control de versiones?
  28 02:11 <@igorgue> es increible la cantidad de desarrolladores de software, que en su vida han usado un sistema de control de versiones
  29 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
  30 02:12 <@igorgue> y tiene mucho que ver...
  31 02:12 <@igorgue> con la educacion que recivimos como ingenieros de software
  32 02:13 <@igorgue> entonces, mucha gente llega a el campo laboral, sin saber que es un sistema de control de versiones o un depurador
  33 02:13 <@igorgue> IDE...
  34 02:13 <@igorgue> Interprete...
  35 02:13 <@igorgue> puedo continuar :)
  36 02:13 <@igorgue> es muy importante saberlo si...
  37 02:13 <@igorgue> OK
  38 02:13 <@igorgue> pero que es?
  39 02:13 <@igorgue> Un sistema de control de versiones es el manejo de los cambios en documentos, archivos, programas, contenidos en una computadora
  40 02:14 <@igorgue> y...
  41 02:14 <@igorgue> por que es importante?
  42 02:14 <@igorgue> una palabra!
  43 02:14 <@igorgue> Colaboracion
  44 02:14 <@igorgue> para tener colaboracion en un equipo, es necesario tener un sistema de control de verisiones
  45 02:14 <@igorgue> al menos en el codigo
  46 02:15 <@igorgue> aunque actualemente
  47 02:15 <@igorgue> el uso de sistemas de control de (*) va mas alla
  48 02:16 <@igorgue> he escuchado de disenadores usando Git
  49 02:16 <@igorgue> es muy importante
  50 02:16 <@igorgue> poder regresar a una version anterior que funcionaba, sin perder tus cambios actuales
  51 02:16 <@igorgue> y eso es el valor del sistema de control de version
  52 02:17 <@igorgue> y es por lo cual en casi todos los proyectos de software libre se usa un sistema de control de version
  53 02:17 <@igorgue> pero...
  54 02:17 <@igorgue> Git es diferente a los demas (o al menos a algunos)
  55 02:17 <@igorgue> Git es un sistema de control de versiones distribuido
  56 02:17 <@igorgue> Por que distribuido?
  57 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
  58 02:18 <@igorgue> lo que significa, que cada desarrollador
  59 02:19 <@igorgue> que obtiene una copia de un codigo que usa Git, es capaz de hacer cualquier tipo de operaciones
  60 02:20 <@igorgue> sobre ese codigo
  61 02:20 <@igorgue> ok, espero que este claro
  62 02:20 <@igorgue> que es un sistema de control de version y git
  63 02:20 <@igorgue> Git no esta solo
  64 02:21 <@igorgue> tambien esta Bazzar, Mercurial (y otros mas que no recuerdo ahorita)
  65 02:21 <@igorgue> todos distribuidos
  66 02:21 <@igorgue> Ubuntu usa Bazzar
  67 02:21 <@igorgue> Mozilla
  68 02:21 <@igorgue> usa Mercurial
  69 02:21 <@igorgue> Linux (el kernel) usa Git
  70 02:22 <@igorgue> todos proyectos inmensos y no he escuchado muchas quejas que diagamos
  71 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)
  72 02:24 <@igorgue> me gustaria pasar a preguntas, antes de ir a demo (donde lo vamos a instalar, y jugar un rato con git)
  73 02:24 <@igorgue> n0rman: ?
  74 02:24 <@alucardni> igorgue, ya te paso las preguntas
  75 02:24 <@alucardni> <n0rman> PREGUNTA: En tu opinion personal, GIT es superior a otros Sistemas de Control de Versiones? Por que?
  76 02:25 <@igorgue> no creo que Git sea superior
  77 02:25 <@igorgue> solo es muy bueno, en mi opinion
  78 02:25 <@igorgue> y famoso
  79 02:25 <@igorgue> Git es posiblemente (con miedo a equibocarme) el mas rapido de todos
  80 02:26 <@igorgue> pero de ahi, no te sabria decir cual es mejor
  81 02:26 <@igorgue> yo he usado Bazzar y Mercurial tambien
  82 02:26 <@igorgue> y aunque escritos en Python (Git en C), son muy rapidos
  83 02:26 <@igorgue> entonces, no se, la verdad es que mientras el sistema que uses sea distribuido estas bien en mi opinion
  84 02:27 <@igorgue> [fin] :)
  85 02:27 <@alucardni> <tcpip4000> PREGUNTA: en que ha utilizado git?
  86 02:27 <@igorgue> en todos mis proyectos de software
  87 02:27 <@igorgue> en mi empresa (que no ha salido a luz todavia)
  88 02:27 <@igorgue> hay un website
  89 02:27 <@igorgue> bien famoso, llamado github, es genial para colaborar con git
  90 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
  91 02:29 <@alucardni> <Tonny> <PREGUNTA> Que tal buen soporte tiene para archivos binarios, es decir no texto
  92 02:29 <@igorgue> tambien esta gitorious, que es genial :) y tengo un proyecto ahi, y lo genial de gitorious
  93 02:29 <@igorgue> esque es software libre
  94 02:29 <@igorgue> y puedes instalarlo
  95 02:30 <@igorgue> Binarios estan soportados
  96 02:30 <@igorgue> y puedes hacer binary diffs en Git tambien
  97 02:30 <@igorgue> de esa manera lo usan los disenadores web
  98 02:30 <@igorgue> alucardni: mas preguntas?
  99 02:30 <@alucardni> <libertcharrua> PREGUNTA: tiene utilidad en el usuario común?
 100 02:31 <@igorgue> el directorio /etc
 101 02:31 <@igorgue> o archivos de configuracion de Linux
 102 02:32 <@igorgue> los podrias usar bajo git
 103 02:32 <@igorgue> para asi no perder configuraciones viejas
 104 02:32 <@igorgue> es algo avanzado
 105 02:32 <@igorgue> no mucho para el usuario comun
 106 02:32 <@igorgue> pero no tenes que saber programacion para usar Git
 107 02:32 <@igorgue> alucardni: next!
 108 02:32 <@alucardni> <kuadrosx> <Pregunta> que recursos para aprender sobre git recomiendas ?
 109 02:33 <@igorgue> http://git-scm.com/ <= es el sitio oficial de git
 110 02:33 <@igorgue> hay un libro de git tambien gratis
 111 02:33 <@igorgue> lamentablemente casi todo en ingles
 112 02:33 <@igorgue> http://progit.org/
 113 02:34 <@igorgue> ese es el libro
 114 02:34 <@igorgue> es gratis leer en linea
 115 02:34 <@igorgue> http://gitcasts.com/ <= en video tambien
 116 02:35 <@igorgue> yo tambinen soy un recurso :)
 117 02:35 <@igorgue> #ubuntu-ni si tienen preguntas luego
 118 02:36 <@igorgue> ok
 119 02:36 <@igorgue> si no hay mas preguntas
 120 02:36 <@igorgue> pasamos al demo
 121 02:36 <@igorgue> que sera algo bien siemple
 122 02:37 <@igorgue> s/siemple/simple/g
 123 02:37 <@igorgue> Instalar y configurar:
 124 02:37 <@igorgue> $ sudo apt-get install git-core
 125 02:37 <@igorgue> ^^ eso instalara git, vale la pena buscar mas paquetes
 126 02:37 <@igorgue> en synaptic
 127 02:38 <@igorgue> porque eso es bien basico, pero funciona para casi todo :)
 128 02:38 <@igorgue> ok, lo primero que van a hacer cuando instalan git
 129 02:39 <@igorgue> es decirle quien sos
 130 02:39 <@igorgue> $ [editor] ~/.gitconfig
 131 02:39 <@igorgue> creara un nuevo archivo
 132 02:40 <@igorgue> en el cual agregan
 133 02:40 <@igorgue> http://gist.github.com/224669
 134 02:40 <@igorgue> algo parecido a eso
 135 02:40 <@igorgue> tambien
 136 02:41 <@igorgue> pueden hacerlo via la linea de comandos
 137 02:41 <@igorgue> $ git config --global user.name "Igor Guerrero"
 138 02:41 <@igorgue> por ejemplo
 139 02:41 <@igorgue> el siguiente paso...
 140 02:42 <@igorgue> es crear un nuevo "repositorio" o "proyecto"
 141 02:42 <@igorgue> $ mkdir ubuntuopenweekgit
 142 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 <nickname> ejemplo: /nick foo
 143 02:42 <@igorgue> $ cd ubuntuopenweekgit
 144 02:42 <@igorgue> $ git init
 145 02:43 <@igorgue> Initialized empty Git repository in /home/igor/ubuntuopenweekgit/.git/
 146 02:43 <@igorgue> esa sera la salida del comando ^^
 147 02:43 <@igorgue> despues
 148 02:44 <@igorgue> $ git status
 149 02:44 <@igorgue> # On branch master
 150 02:44 <@igorgue> #
 151 02:44 <@igorgue> # Initial commit
 152 02:44 <@igorgue> #
 153 02:44 <@igorgue> nothing to commit (create/copy files and use "git add" to track)
 154 02:44 <@igorgue> como ven, no hay nada, entonces
 155 02:44 <@igorgue> git te dice, cual es o puede ser el siguiente paso
 156 02:44 <@igorgue> ok, agregemos un archivo
 157 02:44 <@igorgue> pero antes
 158 02:44 <@igorgue> el comando mas importante de git!
 159 02:44 <@igorgue> $ git status
 160 02:44 <@igorgue> :)
 161 02:45 <@igorgue> eso te dice entre otras cosas, que es lo que tenes en tu repo ahorita
 162 02:45 <@igorgue> desde archivos si seguir, archivos a borrar, en cual rama (branch) del codigo estas
 163 02:45 <@igorgue> etc etc
 164 02:45 <@igorgue> la salida
 165 02:45 <@igorgue> seria
 166 02:45 <@igorgue> $ git status
 167 02:45 <@igorgue> # On branch master
 168 02:45 <@igorgue> #
 169 02:45 <@igorgue> # Initial commit
 170 02:45 <@igorgue> #
 171 02:45 <@igorgue> nothing to commit (create/copy files and use "git add" to track)
 172 02:45 <@igorgue> ahorita que no hay nada....
 173 02:46 <@igorgue> ok
 174 02:46 <@igorgue> ahora
 175 02:46 <@igorgue> creemos un nuevo achivo
 176 02:47 <@igorgue> [editor] README
 177 02:47 <@igorgue> [editor] es donde pondran su editor
 178 02:47 <@igorgue> podria ser gedit
 179 02:47 <@igorgue> kate
 180 02:47 <@igorgue> o vim ;)
 181 02:47 <@igorgue> lo crean y lo guardan
 182 02:47 <@igorgue> cuando dan ahora
 183 02:47 <@igorgue> $ git status
 184 02:47 <@igorgue> # On branch master
 185 02:47 <@igorgue> #
 186 02:47 <@igorgue> # Initial commit
 187 02:47 <@igorgue> #
 188 02:47 <@igorgue> # Untracked files:
 189 02:47 <@igorgue> #   (use "git add <file>..." to include in what will be committed)
 190 02:47 <@igorgue> #
 191 02:47 <@igorgue> #      README
 192 02:48 <@igorgue> nothing added to commit but untracked files present (use "git add" to track)
 193 02:48 <@igorgue> como ven
 194 02:48 <@igorgue> git te dice
 195 02:48 <@igorgue> que hay un archivo
 196 02:48 <@igorgue> que hay que agregar
 197 02:48 <@igorgue> o que no esta siendo seguido
 198 02:48 <@igorgue> mi traduccion de "tracked"
 199 02:49 <@igorgue> ok
 200 02:49 <@igorgue> agregemos ese archivo
 201 02:49 <@igorgue> con
 202 02:49 <@igorgue> $ git add README
 203 02:50 <@igorgue> ahora... adivinen?
 204 02:50 <@igorgue> $ git status
 205 02:50 <@igorgue> # On branch master
 206 02:50 <@igorgue> #
 207 02:50 <@igorgue> # Initial commit
 208 02:50 <@igorgue> #
 209 02:50 <@igorgue> # Changes to be committed:
 210 02:50 <@igorgue> #   (use "git rm --cached <file>..." to unstage)
 211 02:50 <@igorgue> #
 212 02:50 <@igorgue> #      new file:   README
 213 02:50 <@igorgue> #
 214 02:50 <@igorgue> git status :)
 215 02:50 <@igorgue> ahora si
 216 02:50 <@igorgue> dice que hay un archivo nuevo
 217 02:50 <@igorgue> y tambien te dice como quitarlo
 218 02:51 <@igorgue> quitarlo del stage
 219 02:51 <@igorgue> que basicamente es una etapa intermedia
 220 02:51 <@igorgue> en donde pones los archivos
 221 02:51 <@igorgue> antes de ponerlos en el repositorio
 222 02:51 <@igorgue> (el directorio ubuntuopenweekgit)
 223 02:52 <@igorgue> $ git commit -m "primer cambio"
 224 02:52 <@igorgue> [master (root-commit) 8ba8614] primer cambio
 225 02:52 <@igorgue>  1 files changed, 1 insertions(+), 0 deletions(-)
 226 02:52 <@igorgue>  create mode 100644 README
 227 02:52 <@igorgue> ya con eso
 228 02:52 <@igorgue> mandamos el primer cambio....
 229 02:52 <@igorgue> digamos que queremos cambiar el archivo ahora...
 230 02:53 <@igorgue> agregemos mas contenido a el README
 231 02:53 <@igorgue> creo que no mencione que agrege este contenido inicialmente al README
 232 02:53 <@igorgue> $ cat README
 233 02:53 <@igorgue> hola ubuntu open week
 234 02:54 <@igorgue> ok, ahora agregemos mas contenido
 235 02:54 <@igorgue> $ cat README
 236 02:54 <@igorgue> hola ubuntu open week
 237 02:54 <@igorgue> Aprendiendo Git!
 238 02:54 <@igorgue> guardamos...
 239 02:54 <@igorgue> y hacemos un git status
 240 02:55 <@igorgue> $ git status
 241 02:55 <@igorgue> # On branch master
 242 02:55 <@igorgue> # Changed but not updated:
 243 02:55 <@igorgue> #   (use "git add <file>..." to update what will be committed)
 244 02:55 <@igorgue> #   (use "git checkout -- <file>..." to discard changes in working directory)
 245 02:55 <@igorgue> #
 246 02:55 <@igorgue> #      modified:   README
 247 02:55 <@igorgue> #
 248 02:55 <@igorgue> no changes added to commit (use "git add" and/or "git commit -a")
 249 02:55 <@igorgue> ok
 250 02:55 <@igorgue> agegemoslo
 251 02:55 <@igorgue> agregemoslo
 252 02:56 <@igorgue> primero...
 253 02:56 <@igorgue> lo mejor es hacer git diff
 254 02:56 <@igorgue> $ git diff
 255 02:56 <@igorgue> $ git diff
 256 02:56 <@igorgue> diff --git a/README b/README
 257 02:56 <@igorgue> index 43997d1..6127fe9 100644
 258 02:56 <@igorgue> --- a/README
 259 02:56 <@igorgue> +++ b/README
 260 02:56 <@igorgue> @@ -1 +1,2 @@
 261 02:56 <@igorgue>  hola ubuntu open week
 262 02:56 <@igorgue> +Aprendiendo Git!
 263 02:56 <@igorgue> ahi hay info valiosa
 264 02:57 <@igorgue> como ven
 265 02:57 <@igorgue> se dice que se agrego una nueva linea
 266 02:57 <@igorgue> +Aprendiendo Git!
 267 02:57 <@igorgue> lo cual es genial, eso es bueno tambien
 268 02:58 <@igorgue> antes de poner un cambio en el repositorio
 269 02:58 <@igorgue> es importante saber que estamos cambiando
 270 02:58 <@igorgue> ok
 271 02:58 <@igorgue> ahora
 272 02:58 <@igorgue> $ git add README
 273 02:58 <@igorgue> $ git commit -m "agregado git"
 274 02:58 <@igorgue> [master bbef878] agregado git
 275 02:58 <@igorgue>  1 files changed, 1 insertions(+), 0 deletions(-)
 276 02:59 <@igorgue> $ git log
 277 02:59 <@igorgue> commit bbef8780d691c4f703cb7a23c512c8b010d6c7bd
 278 02:59 <@igorgue> Author: Igor Guerrero Fonseca <igfgt1@gmail.com>
 279 02:59 <@igorgue> Date:   Mon Nov 2 20:58:46 2009 -0500
 280 02:59 <@igorgue>     agregado git
 281 02:59 <@igorgue> commit 8ba8614b16cadeb4056d912f3fd9d63484e52075
 282 02:59 <@igorgue> Author: Igor Guerrero Fonseca <igfgt1@gmail.com>
 283 02:59 <@igorgue> Date:   Mon Nov 2 20:51:57 2009 -0500
 284 02:59 <@igorgue>     primer cambio
 285 02:59 <@igorgue> aqui esta el comando "git log"
 286 02:59 <@igorgue> el cual muestra todo lo que hemos hecho
 287 02:59 <@igorgue> el log :-)
 288 03:00 <@igorgue> lo ultimo que vamos a ver
 289 03:00 <@igorgue> es branching
 290 03:00 <@igorgue> o la creacion de nuevas ramas
 291 03:00 <@igorgue> de codigo
 292 03:00 <@igorgue> es muy importante
 293 03:00 <@igorgue> y la manera en que git lo hace
 294 03:00 <@igorgue> es revolucionaria y es por lo cual muchos (me incluyo) se mueven a git
 295 03:01 <@igorgue> desde Subversion (que es creo que lider)
 296 03:02 <@igorgue> es git branch
 297 03:02 <@igorgue> el comando
 298 03:02 <@igorgue> $ git branch nuevoreadme
 299 03:03 <@igorgue> $ git branch
 300 03:03 <@igorgue> * master
 301 03:03 <@igorgue>   nuevoreadme
 302 03:03 <@igorgue> git branch
 303 03:03 <@igorgue> solo
 304 03:03 <@igorgue> dice en cual branch estamos
 305 03:03 <@igorgue> como ven
 306 03:03 <@igorgue> es el "* master"
 307 03:03 <@igorgue> que es en realidad opcional
 308 03:03 <@igorgue> pero la mayoria de proyectos lo usan como la rama de desarrollo
 309 03:03 <@igorgue> ok
 310 03:04 <@igorgue> hagamos un checkout
 311 03:04 <@igorgue> de la nueva rama
 312 03:04 <@igorgue> $ git checkout nuevoreadme
 313 03:04 <@igorgue> Switched to branch 'nuevoreadme'
 314 03:04 <@igorgue> $ git branch
 315 03:04 <@igorgue>   master
 316 03:04 <@igorgue> * nuevoreadme
 317 03:04 <@igorgue> ok
 318 03:04 <@igorgue> estamos en este nuevo branch
 319 03:04 <@igorgue> agegemos mas contenido al readme
 320 03:05 <@igorgue> $ cat README
 321 03:05 <@igorgue> hola ubuntu open week
 322 03:05 <@igorgue> Aprendiendo Git!
 323 03:05 <@igorgue> Git es genial!
 324 03:05 <@igorgue> ese es la nueva linea que agege
 325 03:05 <@igorgue> $ git diff
 326 03:05 <@igorgue> diff --git a/README b/README
 327 03:05 <@igorgue> index 6127fe9..45f428c 100644
 328 03:05 <@igorgue> --- a/README
 329 03:05 <@igorgue> +++ b/README
 330 03:05 <@igorgue> @@ -1,2 +1,4 @@
 331 03:05 <@igorgue>  hola ubuntu open week
 332 03:05 <@igorgue>  Aprendiendo Git!
 333 03:05 <@igorgue> +
 334 03:05 <@igorgue> +Git es genial!
 335 03:05 <@igorgue> esa es la diferencia
 336 03:06 <@igorgue> ahora agegemoslo y mandemos el cambio
 337 03:06 <@igorgue> $ git add README
 338 03:06 <@igorgue> $ git commit -m "git es genial porque es magia"
 339 03:06 <@igorgue> [nuevoreadme 29f1423] git es genial porque es magia
 340 03:06 <@igorgue>  1 files changed, 2 insertions(+), 0 deletions(-)
 341 03:06 <@igorgue> $ git log
 342 03:07 <@igorgue> les va a decir el nuevo cambio que mandamos
 343 03:07 <@igorgue> ahora biene lo genial...
 344 03:07 <@igorgue> checkout la rama "master"
 345 03:07 <@igorgue> $ git checkout master
 346 03:07 <@igorgue> Switched to branch 'master'
 347 03:07 <@igorgue> $ cat README
 348 03:07 <@igorgue> hola ubuntu open week
 349 03:07 <@igorgue> Aprendiendo Git!
 350 03:07 <@igorgue> como ven
 351 03:08 <@igorgue> la linea que agegamos en el otro branch
 352 03:08 <@igorgue> desaparecio!
 353 03:08 <@igorgue> pero esta en el otro branch
 354 03:08 <@igorgue> no en este
 355 03:08 <@igorgue> eso es muy genial en git
 356 03:08 <@igorgue> los branches
 357 03:08 <@igorgue> o ramas
 358 03:08 <@igorgue> son locales
 359 03:08 <@igorgue> si queremos copiar los cambios del otro branch al master
 360 03:08 <@igorgue> hacemos un merge
 361 03:09 <@igorgue> $ git merge nuevoreadme
 362 03:09 <@igorgue> Updating bbef878..29f1423
 363 03:09 <@igorgue> Fast forward
 364 03:09 <@igorgue>  README |    2 ++
 365 03:09 <@igorgue>  1 files changed, 2 insertions(+), 0 deletions(-)
 366 03:09 <@igorgue> y ya tenemos los cambios que hicimos en el otro lado
 367 03:09 <@igorgue> bueno
 368 03:09 <@igorgue> creo que eso es todo
 369 03:09 <@igorgue> vimos que git
 370 03:10 <@igorgue> 1. es local
 371 03:10 <@igorgue> 2. maneja contenido no archivos
 372 03:10 <@igorgue> 3. es facil de usar
 373 03:10 <@igorgue> si quieren ver algo bueno
 374 03:10 <@igorgue> pueden dar
 375 03:10 <@igorgue> $ gitk
 376 03:11 <@igorgue> ejemplo: http://dl.getdropbox.com/u/421955/ubuntuopenweekgit.png
 377 03:12 <@igorgue> tambien hay otro UI que yo he estado usando
 378 03:12 <@igorgue> llamado
 379 03:12 <@igorgue> cola
 380 03:12 <@igorgue> busquen en synaptic: git cola
 381 03:13 <@alucardni> <n0rman> PREGUNTA: Y como para en que ocsaiones son buena idea los branches?
 382 03:13 <@igorgue> bueno
 383 03:13 <@igorgue> yo uso branches todo el tiempo
 384 03:13 <@igorgue> tengo que implementar algo
 385 03:13 <@igorgue> uso un branch
 386 03:13 <@igorgue> creo que tengo que mantener XYZ codigo
 387 03:13 <@igorgue> hago un branch para mas tarde
 388 03:14 <@igorgue> branches son buenos
 389 03:14 <@igorgue> porque es un punto en tu proyecto al cual podes regresar
 390 03:14 <@alucardni> Tonny> PREGUNTA: Alguna interfaz gráfica para ver las diferencias entre archivos
 391 03:15 <@igorgue> podes usar meld
 392 03:16 <@igorgue> http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
 393 03:16 <@igorgue> algo viejo
 394 03:16 <@n0rman> < Tonny> <PREGUNTA> Que tal buen soporte tiene para archivos binarios, es decir no texto
 395 03:16 <@igorgue> pero siguen siendo los mismos pasos
 396 03:16 <@alucardni> <Andphe> pregunta: no harán un ejemplo de branches remotos ? trabajo en equipo ?
 397 03:17 <@igorgue> hay binary diffs
 398 03:17 <@igorgue> y estan soportados
 399 03:17 <@igorgue> los archivos binarios
 400 03:17 <@igorgue> no
 401 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
 402 03:17 <@igorgue> pero...
 403 03:18 <@igorgue> sinceramente
 404 03:18 <@n0rman> < MadGab> PREGUNTA: para trabajar un proyecto en equipo existe algun servidor publico el cual nos permita almacenar
 405 03:18 <@n0rman>                 nuestro codigo, para no trabajar de manera local con Git?
 406 03:18 <@igorgue> aqui estamos a un paso
 407 03:18 <@igorgue> despues de los commit
 408 03:18 <@igorgue> haces un
 409 03:18 <@igorgue> $ git push remote_alias remote_branch
 410 03:18 <@igorgue> $ git pull remote_alias/remote_branch # para obtener cambios
 411 03:19 <@igorgue> git trabaja localmente, pero podes subir tus cambios a repositorios remotos, expuestos via SSH (que es la manera mas facil)
 412 03:19 <@igorgue> entonces
 413 03:19 <@igorgue> un git url es o podria ser
 414 03:19 <@igorgue> git@server.com:directorio/proyecto.git
 415 03:20 <@igorgue> eso responde la pregunta?
 416 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?
 417 03:22 <@igorgue> Gitorious.org <= kuadrosx da soporte gratis y cuentas pro gratis tambien (es broma no hay cuentas pro creo ;))
 418 03:22 <@igorgue> tambien pueden usar github.com pero no es libre (pero permite proyectos no-libres)
 419 03:23 <@n0rman> < jcalderon> PREGUNTA: Como puedo hacer funcionar git para mis archivos de configuración en un servidor ?
 420 03:23 <@igorgue> vas al directorio donde tienes los archivos de conf
 421 03:23 <@igorgue> le das
 422 03:24 <@igorgue> $ git init
 423 03:24 <@igorgue> $ git add [archivos]
 424 03:24 <@igorgue> o si quieres tomar todos los archivos
 425 03:24 <@igorgue> $ git add .
 426 03:24 <@igorgue> $ git commit -m "commit inicial"
 427 03:24 <@igorgue> y ya esta :)
 428 03:24 <@igorgue> puedes copiar el archivo
 429 03:24 <@igorgue> digo
 430 03:24 <@igorgue> el directorio
 431 03:24 <@igorgue> .git
 432 03:25 <@igorgue> para moverlo donde quieras
 433 03:25 <@igorgue> como dice kuadrosx tambien pueden usar el archivo .gitignore para evitar agregar archivos indeseados
 434 03:25 <@igorgue> http://www.kernel.org/pub/software/scm/git/docs/gitignore.html
 435 03:27 <@n0rman> < kikove> <PREGUNTA> Se me ocurre usarlo para la gestion de backups de MySQL, es posible esto
 436 03:27 <@igorgue> de hecho esa idea esta genial
 437 03:28 <@igorgue> si tus backups son SQL statements esta genial
 438 03:28 <@igorgue> SQL statements == sentencias SQL
 439 03:29 <@igorgue> otra pregunta?
 440 03:29 <@n0rman> < n0rman> kuadrosx: das cuentas pro gratis, es cierto? :)
 441 03:30 <@n0rman> :P
 442 03:30 <@n0rman> esa es broma :)
 443 03:30 <@n0rman> jejeje
 444 03:30 <@igorgue> :)
 445 03:30 <@n0rman> gracias igorgue :)
 446 03:30  * n0rman *clap* *clap*
 447 03:30 <@alucardni> ok, gracias igorgue
 448 03:31 <@alucardni> muchas gracias a todos los asistentes

UbuntuOpenWeek_ES/openweekKarmicLog/Git (last edited 2009-11-03 05:44:10 by 190)