0% encontró este documento útil (0 votos)
2 vistas16 páginas

Intro Git

El documento presenta una introducción al control de versiones, enfocándose en Git, su historia, y su importancia en el desarrollo de software. Se describen los conceptos básicos de Git, incluyendo repositorios, estados de archivos, ramas y comandos esenciales para su uso. Además, se menciona la necesidad de un servidor remoto para colaborar y se destacan plataformas populares como GitHub.

Cargado por

colquesergio367
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas16 páginas

Intro Git

El documento presenta una introducción al control de versiones, enfocándose en Git, su historia, y su importancia en el desarrollo de software. Se describen los conceptos básicos de Git, incluyendo repositorios, estados de archivos, ramas y comandos esenciales para su uso. Además, se menciona la necesidad de un servidor remoto para colaborar y se destacan plataformas populares como GitHub.

Cargado por

colquesergio367
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Introducción a Git

El control de versiones que


cambió el mundo

Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 1


¿Control de versiones?
Es un software que registra los cambios realizados sobre archivos a lo
largo del tiempo.
Permite volver a versiones anteriores de un archivo o proyecto.
Facilita el trabajo en equipo sin pisarse entre sí.
Mantiene un historial completo de quién cambió qué y cuándo.

Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 2


Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 3
Breve historia
Año Herramienta Tipo
1972 SCCS Local
1982 RCS Local
1990 CVS Centralizado
2000 SVN (Subversion) Centralizado
2000 BitKeeper Distribuido
2005 Mercurial Distribuido
2005 Git Distribuido

Los sistemas centralizados dependen de un servidor único. Los


distribuidos le dan a cada desarrollador una copia completa del
historial.

Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 4


Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 5
¿Cómo nació Git?
El kernel de Linux usaba un sistema propietario llamado BitKeeper.
En 2005, la relación con BitKeeper se rompió.
L i n u s To r v a l d s c r e ó G i t e n p o c a s s e m a n a s c o n e s t o s o b j e t i v o s :
Ve l o c i d a d
Diseño simple
Soporte para desarrollo no lineal (miles de ramas)
Completamente distribuido
Open source

Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 6


Repositorio
Un repositorio (repo) es un directorio cuyo historial de cambios está
siendo trackeado (rastreado) por Git.
S e i n i c i a l i z a c o n git init .
C o n t i e n e u n a c a r p e t a o c u l t a .git/ c o n t o d a l a m e t a d a t a .
Puede ser local (en tu máquina) o remoto (en un servidor).

Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 7


Los tres estados
de Git
To d o a r c h i v o e n u n r e p o s i t o r i o
puede estar en uno de estos
estados:
Wo r k i n g D i r e c t o r y → d o n d e
editás tus archivos.
Staging Area (index) → archivos
preparados para el próximo
commit.
Repository (.git) → historial
confirmado.
Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería
(UBA) 8
Ramas (branches)
Una rama es una línea independiente de
desarrollo.
Sirven para llevar distintas líneas de
desarrollo en paralelo.
Luego se pueden mergear (mezclar)
para unificarse.
Lo vamos a ver en profundidad la
siguiente clase.

Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 9


Flujo básico

1. Modificás un archivo en tu directorio de trabajo.


2 . A g r e g á s l o s c a m b i o s a l s t a g i n g a r e a c o n git add .
3 . C o n f i r m á s l o s c a m b i o s c o n git commit .

Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 10


Comandos básicos
Comando Descripción
git init Inicializa un repositorio nuevo
git status Muestra el estado actual de los archivos
git add <archivo> Agrega cambios al staging area
git commit -m "mensaje" Confirma los cambios con un mensaje
git log Muestra el historial de commits
git diff Muestra las diferencias no stageadas

Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 11


Más comandos útiles
Comando Descripción
git clone <url> Clona un repositorio remoto
git pull Trae y fusiona cambios del remoto
git push Sube commits al repositorio remoto
git branch Lista o crea ramas
git checkout <rama> Cambia de rama
git merge <rama> Fusiona una rama en la actual

Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 12


Hosting de repositorios
Git es local. Para colaborar necesitamos un servidor remoto.
Plataforma Destacado
GitHub L a m á s p o p u l a r, g r a n c o m u n i d a d o p e n s o u r c e
GitLab CI/CD integrado, se puede self-hostear
Bitbucket Integración con Jira y el ecosistema Atlassian
Gitea Liviano, self-hosted, open source

En esta materia vamos a usar GitHub.

Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 13


Crear y subir un repositorio

Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 14


Conectar con GitHub y subir

Primero creá el repositorio vacío en GitHub (sin README ni .gitignore).

Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 15


GRACIAS!

Nicolás Riedel | Introducción al Desarrollo de Software - Facultad de Ingeniería (UBA) 16

También podría gustarte