Ubuntu Open Week - Control de Versiones con Git - Igor Guerrero - Lunes 2 de noviembre de 2009
Toggle line numbers
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