PDF de programación - Introducción a GIT: Un sistema de control de versiones ... bien hecho

Imágen de pdf Introducción a GIT: Un sistema de control de versiones ... bien hecho

Introducción a GIT: Un sistema de control de versiones ... bien hechográfica de visualizaciones

Publicado el 14 de Enero del 2017
1.121 visualizaciones desde el 14 de Enero del 2017
572,1 KB
36 paginas
Creado hace 15a (16/04/2009)
Git

Introduccion a Git:

Un Sistema de control de versiones

...bien hecho.

Gabriel Saldaña

[email protected]

http://blog.nethazard.net


Atribución



¿Qué es Git?

 Un sistema de control de versiones distribuido.
 No depende de acceso a la red o un repositorio 

central.

 Enfocado a la velocidad, uso practico y manejo de 

proyectos grandes.

 Creado por Linus Torvalds, el creador del núcleo 

Linux.



Cualidades de Git

 Diseñado para manejar proyectos grandes.
 Es extremadamente rápido.
 Autentificacion criptográfica del historial.
 Formato de archivo muy sencillo y compacto.
 100% distribuido.
 Se puede sincronizar por cualquier medio.



Centralizado vs Distribuido



Centralizado



Cayusa: www.flickr.com/photos/cayusa

Centralizado

 Todos deben conectarse 

a un servidor central.

 No puedes trabajar sin 

conexion.

 Politicas de escritura.
 Los cambios afectan a 

todos.



Centralizado

 Crear ramas es muy costoso, 

tardado o tedioso.

 Las ramas afectan a todos 

porque son globales. 
Necesitarias politicas de 
nomenclaturas para no estorbar 
a otros.

 Casi no envias cambios. Te 

esperas a que tengas algo 
estable para subirlo al 
repositorio.

 Nunca haces algo estable a la 



primera.



Distribuido



Marcio Ruiz: www.flickr.com/photos/marcio_ruiz/



Distribuido

 Todos son igual de importantes.
 Se puede trabajar sin conexion.
 Debes ganar confianza y confiar en otros.
 Los cambios solo te afectan a ti.



Distribuido

 Colaboración

Realiza cambios sin afectar a los demás.
Experimenta y ramifica el código a tu gusto.

 Confía en tu información

sin tener que confiar en todos los demás.
sin tener que pedir permisos de escritura
sin depender de tu servidor o hosting del repositorio.

 No hay un punto débil central, y la información se 

replica de forma natural.



¿Cómo funciona?

 Comenzamos con 

nuestro proyecto en un 
repositorio



¿Cómo funciona?

 Luego alguien hace una 

copia de nuestro 
proyecto



¿Cómo funciona?

 Cada desarrollador 

puede seguir trabajando 
individualmente



¿Cómo funciona?

 Los cambios de cada 
uno no afectan al otro



¿Cómo funciona?

 Luego, el desarrollador 

principal jala los 
cambios del otro 
desarrollador



¿Cómo funciona?

 Y los mezcla con su 

trabajo.



¿Cómo funciona?

 Finalmente, el segundo 

desarrollador jala los 
nuevos cambios del 
primero, con todo 
integrado.



Confianza



Jfneier: www.flickr.com/photos/jfchenier

Confianza

 Todos son tontos. Solo unos cuantos saben 

programar bien.

 Solo acepto cambios de mis amigos de confianza.
 Tus cambios son mas limpios.
 Siempre habrá un repositorio de mayor confianza.



Ramas

 Crear ramas del código es fácil y sencillo.
 Crear ramas fomenta la experimentación y 

creatividad.

 Las ramas solo te afectan a ti.
 Normalmente se tienen 2, 3 o hasta 15 ramas o más.
 Merges son muy sencillos de realizar.



Desempeño

 La velocidad en el desempeño es muy importante.
 No debe estorbar o frenar tu ritmo de trabajo.
 Los merges deben ser rápidos y sencillos. Deben 

tomar menos de un segundo.



Contenido

 Git controla contenido, no archivos.
 Se puede borrar, renombrar, mover sin tener que 

avisarle a Git.

 Y el historial se mantiene!
 Puedes ver el historial de una función desde su 

inicio, aunque haya cambiado de un archivo a otro.



Git es para grandes

 Linux kernel tiene más de 22,000 archivos.
 Ha usado Git los ultimos dos años, haciendo 4.5 

merges al día.

 Mostrar las diferencias de todo el kernel, 74,000 

commits, toman aprox. 7 segundos (cold cache) 2.3 
seg. (warm cache).

 El repositorio en CVS del Mozilla Project es de 

3GB, en Subversion es de 12GB en formato fsfs. En 
Git es de 300 Mb.



¿Quienes usan Git?

 El Linux kernel
 Ruby on Rails
 Perl
 X.org / Cairo
 Wine
 Beryl
 Gnome
 Android
 VLC



Obtener Git

Debian

aptitude install git-core

Fedora

yum install git

Gentoo

emerge dev-util/git

OpenSUSE

yum install git

Ubuntu

aptitude install git-core

Mac OS X

port install git-core



Usando Git

Crear un repositorio

cd project/

git init #Inicializa el repositorio.

git add . #Agrega todos los archivos al repositorio.

 Realizar cambios

git status #Consulta lo que ha cambiado

git commit -a -m “commit message” #Guarda todos tus cambios

 Crear ramas

git branch experimento_uno
git checkout experimento_uno

 Hacer merges

git checkout master
git merge expermiento_uno

 Revisar historial

git log



Usando Git

 Regresar a la version anterior
git reset HEAD~1
 Traer cambios de un repositorio externo:
#trae y mezcla los cambios de repositorio en un USB.

git pull /media/usbdisk/project.git

#agrega un repositorio externo para compartir cambios con un

amigo

git remote add friend file:///net/friend/git/project

# Trae los cambios del repositorio externo sin mezclarlos

$ git fetch friend



Usando Git

 Aplica parches recibidos en archivos .patch
 git apply < ../p/foo.patch
git commit -a
 Crea un repositorio vacío para un webserver.
mkdir my-repo.git

cd my-repo.git

git --bare init

chmod a+x hooks/post-update # this is needed for HTTP transport



Usando Git

 Muestra las diferencias entre dos ramas
git diff origin..master
 Crea un archivo .patch de los cambios realizados
git diff origin..master > my.patch
 Obten un diffstat de los cambios hechos pero no 

guardados

git diff --stat HEAD
 Aplica el 4° ultimo parche de la rama “otra” a la 

rama actual.

git cherry-pick otra~3



Herramientas

 Gitk, una herramienta 

visual para ver el 
historial del repositorio.



Herramientas

 Gittool, una interfaz 

visual para ver los 
cambios realizados y 
guardar los cambios.



Interfaces Web

 gitweb ­ implementación en Perl mantenida por Kay 

Sievers. Se usa en kernel.org

 wit ­ implementación en Python mantenida por 

Christian Meder.

 gitarella ­ implementación en Ruby mantenida por 

Diego Petten

 git­php  ­ implementación en PHP por Zack Bartel
 cgit – implementación en C por Lars Hjemli



Git y Subversion

 SVN checkout
git svn checkout svn://myrepo/svn/trunk
 SVN Update
git svn rebase
 SVN Commit
git svn dcommit



RTFM

http://git.or.cz







Gracias

Contact me:

Email: [email protected]

[email protected]

Blog: http://blog.nethazard.net

Identi.ca http://identi.ca/gabrielsaldana/

Twitter http://twitter.com/gabrielsaldana/
  • Links de descarga
http://lwp-l.com/pdf247

Comentarios de: Introducción a GIT: Un sistema de control de versiones ... bien hecho (1)

Imágen de perfil
10 de Octubre del 2017
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad