PDF de programación - git: Control de versiones estilo Linus

git: Control de versiones estilo Linusgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 6 de Febrero del 2018)
393 visualizaciones desde el 6 de Febrero del 2018
1,3 MB
50 paginas
Creado hace 11a (24/11/2012)
git: Control de versiones estilo Linus

Horst H. von Brand

Departamento de Inform´atica

Universidad T´ecnica Federico Santa Mar´ıa

24 de noviembre de 2012

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Visi´on general

Control de versiones

Sistema de control de versiones para Linux

Plomer´ıa y porcelana

Algunos comandos

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

Definici´on de SCM

(cid:73) Software Configuration Management (SCM) es el conjunto de
actividades relacionadas con la administraci´on de versiones de
software

(cid:73) Muchos productos se encuentran en versiones diferentes en
diversos sitios. Desarrolladores tienen versiones en prueba.

(cid:73) Es una actividad vital en el desarrollo de todo proyecto.

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

Operaciones de SCM

(cid:73) Modificar

(cid:73) Checkout
(cid:73) Editar
(cid:73) Agregar, borrar, eliminar, mover
(cid:73) Commit
(cid:73) Deshacer modificaciones anteriores

(cid:73) Informaci´on

(cid:73) Estado actual
(cid:73) Estad´ısticas
(cid:73) Diferencias
(cid:73) Historia/Arqueolog´ıa

(cid:73) Manejo de tags
(cid:73) Manejo de ramas (branches): Crear, destruir, merge, tomar

cambios, . . .

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

Modelos de SCM

Centralizado: Todo se registra en un repositorio central. Se baja
una versi´on, se modifica, se ajusta localmente por
cambios en el intertanto y se sube.

Distribuido: Cada desarrollador tiene un repositorio propio.

Maneja sus propias versiones, intercambia
modificaciones con los dem´as.

Un sistema distribuido puede manejarse en forma centralizada, en
la pr´actica no se usan realmente todos contra todos. No fuerzan
una organizaci´on particular.
Los sistemas distribuidos son c´omodos para uso personal. Dado
que est´an pensados para interacci´on directa con el repositorio, es
simple usarlos en forma puramente local.

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

Modelo centralizado

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

Modelo distribuido

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

¿Sirve la descentralizaci´on?

(cid:73) Micro-commits no intrusivos
(cid:73) Manejo de ramas privadas
(cid:73) Operaci´on desconectada
(cid:73) No hay un ´unico punto de falla
(cid:73) Respaldos son triviales

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

El modelo de desarrollo de Linux

(cid:73) El n´ucleo es grande (3.6 es 15 680 036 l´ıneas de c´odigo) y

complejo

(cid:73) Son muchos desarrolladores independientes (entre 2005 y
2011, m´as de 7 800 desarrolladores de casi 800 compa˜n´ıas
participaron, alrededor de 1/3 con un ´unico parche)

(cid:73) El tr´afico de parches es gigantesco (10 247 parches en los 71

d´ıas entre 3.5 y 3.6, es un parche cada 10 minutos)

(cid:73) Hay un centenar de ´arboles para subsistemas, por los que la

mayor´ıa de los parches pasa camino a la versi´on “oficial”

(cid:73) Hay ´arboles de versiones estables que integran s´olo cambios

simples de poco riesgo y correcci´on de errores

(cid:73) Las distribuciones toman cambios selectivamente
Linux es marca registrada de Linus Torvalds

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

El modelo de desarrollo de Linux

(cid:73) Los desarrolladores se organizan en una jerarqu´ıa informal:
Linus a la cabeza, lugartenientes de Linus, responsables por
grandes subsistemas, . . .

(cid:73) Hay m´ultiples ramas: Versiones experimentales para
arquitecturas espec´ıficas, versiones estables (base de
distribuciones “enterprise”), ´areas completas como manejo de
redes o desarrollo de WiFi, drivers individuales, colecciones de
parches en prueba, . . .

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

Requisitos de SCM para Linux

(cid:73) Sistema distribuido (son muchas l´ıneas de desarrollo)
(cid:73) Gran rendimiento (ingresar cientos de parches por minuto)

(cid:73) No dar una posici´on especial al “due˜no del repositorio

maestro”

(cid:73) El compromiso de master.kernel.org mostr´o que no estar

atado a un repositorio fijo (Linus mantuvo una copia temporal
de Linux en git://github.com/torvalds/linux.git) es
vital.

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

GIT – The stupid content tracker

“git” can mean anything, depending on your mood:

(cid:73) Random three-letter combination that is pronounceable, and
not actually used by any common Unix command. The fact
that it is a mispronunciation of “get” may or may not be
relevant

(cid:73) Stupid. Contemptible and despicable. Simple. Take your pick

from the dictionary of slang.

(cid:73) “Global information tracker”: You’re in a good mood, and it
actually works for you. Angels sing, and a light suddenly fills
the room.

(cid:73) “Goddamn idiotic truckload of sh*t”: When it breaks

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

GIT – The stupid content tracker

I’m an egotistical bastard, so I name all my projects after myself.
First Linux, now git.

– Linus Torvalds

[En el slang brit´anico, “git” es “pig headed, think they are always
correct, argumentative”]

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

GIT mejora. . .

Inicialmente, git era exclusivamente para uso de expertos en
arcanos mayores. En la serie 1.5 se hicieron grandes esfuerzos por
hacer que git fuera m´as f´acil de usar. El esfuerzo sigue, aunque
ahora se ha concentrado en la interacci´on con otros repositorios.

And then realize that nothing is perfect. Git is just *closer* to
perfect than any other SCM out there

– Linus Torvalds

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – ´Area de trabajo

(cid:73) Directorios y archivos

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – Repositorio

(cid:73) Objeto: Contenido de un archivo

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – Repositorio

(cid:73) Objeto: Contenido de un archivo
(cid:73) Commit: Contenidos de archivos y

metadatos

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – Repositorio

(cid:73) Objeto: Contenido de un archivo
(cid:73) Commit: Contenidos de archivos y

metadatos

(cid:73) Relaci´on entre commits:

Referencias a sus predecesores

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – Repositorio

(cid:73) Objeto: Contenido de un archivo
(cid:73) Commit: Contenidos de archivos y

metadatos

(cid:73) Relaci´on entre commits:

Referencias a sus predecesores
(cid:73) Tags: R´otulos en puntos de la

historia

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – Repositorio

(cid:73) Objeto: Contenido de un archivo
(cid:73) Commit: Contenidos de archivos y

metadatos

(cid:73) Relaci´on entre commits:

Referencias a sus predecesores
(cid:73) Tags: R´otulos en puntos de la

historia

(cid:73) Ramas: Punteros a commits

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – Relaci´on con ´area de trabajo

(cid:73) Ramas

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – Relaci´on con ´area de trabajo

(cid:73) Ramas
(cid:73) HEAD apunta a una rama

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de cont
  • Links de descarga
http://lwp-l.com/pdf8639

Comentarios de: git: Control de versiones estilo Linus (0)


No hay comentarios
 

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