GitFu

Control de Versiones con Git - Igor Guerrero

Aprender algo de Git-fu, que tan importante es el control de version de codigo en estos dias?

Log de la Sesión

El log de la sesión lo puedes encontrar aquí.

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

UbuntuOpenWeek_ES/GitFu (last edited 2009-11-03 05:09:13 by 101-49-212-190)