SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Mini-tutorial de Git
 Controlando las versiones del código fuente


             Antonio Ognio
          antonio@linux.org.pe
Mini-tutorial de Git – Antonio Ognio


Agenda
  ●   ¿Qué es Git?

  ●   Breve historia

  ●   Comandos básicos

  ●   Ejemplos prácticos

  ●   Github

  ●   Conclusiones
Mini-tutorial de Git – Antonio Ognio


¿Qué es Git?
●   Un sistema distribuído de control de versiones

●   Software libre / Código abierto

●   Cada “clón” es una repositorio completo

    ●   Completo historial de revisiones

    ●   No depende de un repositorio central

●   Crear branches y hacer merge es rápido y fácil
Mini-tutorial de Git – Antonio Ognio


¿Porqué nos podría interesar?
●   Es utilizado por el proyecto del Kernel de Linux

●   Fué escrito por Linus Torvalds (originalmente)

●Es utilizado en proyectos como: Perl, GNOME, Qt, Ruby
on Rails, Android, Wine, etc

●   Esta “de moda” con sitios como Github

●   Ideal para un uso personal
Mini-tutorial de Git – Antonio Ognio


Sistema de control de versiones (RCS)
● Permite llevar cuenta de los cambios de un conjunto de archivos
 digitales en el tiempo

●   Cada versión registrada en el tiempo es una “revisión”

●   Muy utilizado para la gestión de código fuente

●Permite tanto a un desarrollador individual como a un grupo de
programadores gestionar el código de un proyecto

●   Especializados en archivos de texto (generalmente)
Mini-tutorial de Git – Antonio Ognio


¿Qué otros sistemas de control de versiones hay?
●   RCS (el original, de Pardue University luego GNU)

●   CVS

●   Subversion (SVN)

●   Mercurial (hg)

●   Bazaar (bzr)

●   Visual SourceSafe (Microsoft)
Mini-tutorial de Git – Antonio Ognio


¿Porqué es “distribuído”?


●   No requiere un repositorio “central” (como svn)

●   Cada copia o “clón” es autosuficiente y completa

●   Cualquier copia se puede actualizar contra otra
Mini-tutorial de Git – Antonio Ognio


Breve Historia

● El Kernel Linux es el proyecto de código abierto más
grande y con más actividad que existe en el mundo

●En el 2002 Linus Torvalds encontró en BitKeeper, un
producto comercial de la empresa BitMover un RCS
superior y decidió usarlo

● Stallman lo criticó, Alan Cox (Kernel 2.2) se opuso pero
igual se utilizó gracias a una licencia especial para
proyectos libres extendida por Larry McVoy
Mini-tutorial de Git – Antonio Ognio


Breve Historia (continuación)

● En 2005 se eliminó la licencia gratuita de BitKeeper
señalando a Andrew Tridgell (TRAC) de haber hecho
ingeniería reversa (cosa que el desmintió)

● Linus Torvalds tomó el toro por las astas y escribió el
mismo un sistema RCS con lo mejor de SVN, Bitkeeper y
las mejoras necesarias para el kernel

●Luego de 2 semanas de no trabajar en el kernel Linus
crea “GIT” y comienza la historia...
Mini-tutorial de Git – Antonio Ognio


¿Porqué Linus tuvo que crear Git?

●Ni siquiera BitKeeper era lo suficientemente rápido
para las necesidades del kernel como proyecto

●Muchos parches complicados tomaban hasta 30
segundos en aplicarse

●Sincronizar las versiones entre Linus Torvalds y Andrew
Morton (mantenedor de la rama 2.6 demoraba 2 horas!)

●   Se necesitaba algo veloz y distribuído, nace Git!
Mini-tutorial de Git – Antonio Ognio


Comandos básicos
Mini-tutorial de Git – Antonio Ognio


Comandos básicos




         http://ktown.kde.org/~zrusin/git/
Mini-tutorial de Git – Antonio Ognio


Ejemplos prácticos

●   Iniciar un proyecto

●   Ir trabajando por “pedacitos”

●   Revisar el trabajo realizado

●   Corregir errores

●   Trabajando con un repositorio remoto
    Tomado de: http://www.spheredev.org/wiki/Git_for_the_lazy
Mini-tutorial de Git – Antonio Ognio


Iniciar un proyecto
1. Crear una carpeta, entrar a una ya existente o descomprimir un archivo comprimido

cd proyecto
2. Decirle a git que empiece a llevar cuenta de los cambios

git init .
3. Agregar todos los archivos presentes

git add .
4. Crear la revisión inicial

git commit -m 'Revisión inicial'
Mini-tutorial de Git – Antonio Ognio


Ir trabajando por “pedacitos”
1. Ver que archivos han cambiado

git status
2. Ver los cambios en formato de parche (diff)

git diff
3. Agregar a la próxima revisión los archivos mencionados en el paso 1 que deseamos incluir

git add archivo1 archivo2 carpeta1 carpeta2
4. Crear una nueva revisión

git commit -m 'Nueva revisión con tales cambios'
Mini-tutorial de Git – Antonio Ognio


Revisar el trabajo realizado
1. Ver el historial de cambios

git log
2. Ver solo las últimas n (ej. 3) revisiones:

git log –n3
3. Ver cambios de forma detallada

git log --stat --summary
Mini-tutorial de Git – Antonio Ognio


Corregir errores
1. Descartar todos los cambios hechos desde la última revisión

git reset --hard

2. Descartar cambios en un archivo individual (actualizar a la última revisión conocida)

git checkout archivo
3. Corrigiendo la descripción de la última revisión (el último commit)

git commit --amend
4. Incluir algo que debió estar en la última revisión creada

git reset --soft HEAD^
git add olvidado1 olvidado2
git commit
Mini-tutorial de Git – Antonio Ognio


Trabajando con un repositorio remoto
1. Crear un “clón” del repositorio remoto

git clone git://servidor.com/ruta/al/proyecto.git
2. Agregar el origen remoto

git remote add origin git://servidor.com/ruta/al/proyecto.git

3. Hacer cambios y agregar los archivos modificados a una nueva revisión

git add archivo1 archivo2 carpeta1 carpeta2
git commit -m 'Nueva revisión con tales cambios'
4. Enviar los cambios de vuelta al repositorio remoto

git push origin master
Mini-tutorial de Git – Antonio Ognio


Github

●   Sitio web de hospedaje de proyectos usando git

●   Plan básico (gratuito) + otros planes pagados
    ● 300 MB de almacenamiento para proyectos




●Permite hacer “fork” con facilidad y luego solicitar
al dueño del repo original que haga “pull”

●   Una “red social” para programadores :)
Mini-tutorial de Git – Antonio Ognio


Github
Mini-tutorial de Git – Antonio Ognio


Github
Mini-tutorial de Git – Antonio Ognio


Github
Mini-tutorial de Git – Antonio Ognio


Conclusiones
  ● Git es una herramienta rápida, eficiente y moderna
  para el control de versiones de proyectos con archivos
  digitales sean o no código fuente

  ●Git permite flujos de trabajo distribuídos en los que
  no tiene porque existir un repositorio central

  ●Linus Torvalds creó Git de acuerdo a las necesidades
  del kernel pero ofreció una gran herramienta a la
  comunidad en general

Más contenido relacionado

La actualidad más candente

Difference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucketDifference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucketAcodez IT Solutions
 
Control de versiones con Git y Github
Control de versiones con Git y GithubControl de versiones con Git y Github
Control de versiones con Git y Githubguest638090
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucketMedhat Dawoud
 
Tóm tắt lệnh Ubuntu
Tóm tắt lệnh UbuntuTóm tắt lệnh Ubuntu
Tóm tắt lệnh UbuntuQuang Ngoc
 
Version Control System - Git
Version Control System - GitVersion Control System - Git
Version Control System - GitCarlo Bernaschina
 
Introduction To Git For Version Control Architecture And Common Commands Comp...
Introduction To Git For Version Control Architecture And Common Commands Comp...Introduction To Git For Version Control Architecture And Common Commands Comp...
Introduction To Git For Version Control Architecture And Common Commands Comp...SlideTeam
 
Introduzione a Git (ITA - 2017)
Introduzione a Git (ITA - 2017)Introduzione a Git (ITA - 2017)
Introduzione a Git (ITA - 2017)Valerio Radice
 
Giới thiệu Git và một số tính năng cơ bản
Giới thiệu Git và một số tính năng cơ bảnGiới thiệu Git và một số tính năng cơ bản
Giới thiệu Git và một số tính năng cơ bảnHuy Nguyen Quang
 

La actualidad más candente (20)

Difference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucketDifference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucket
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
 
Control de versiones con Git y Github
Control de versiones con Git y GithubControl de versiones con Git y Github
Control de versiones con Git y Github
 
Git & GitHub WorkShop
Git & GitHub WorkShopGit & GitHub WorkShop
Git & GitHub WorkShop
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
 
Oop principles
Oop principlesOop principles
Oop principles
 
Introduzione a Git
Introduzione a GitIntroduzione a Git
Introduzione a Git
 
Presentacion git
Presentacion gitPresentacion git
Presentacion git
 
Busqueda por profundidad iterativa
Busqueda por profundidad iterativaBusqueda por profundidad iterativa
Busqueda por profundidad iterativa
 
Tóm tắt lệnh Ubuntu
Tóm tắt lệnh UbuntuTóm tắt lệnh Ubuntu
Tóm tắt lệnh Ubuntu
 
Github
GithubGithub
Github
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
Version Control System - Git
Version Control System - GitVersion Control System - Git
Version Control System - Git
 
BitBucket presentation
BitBucket presentationBitBucket presentation
BitBucket presentation
 
Introduction To Git For Version Control Architecture And Common Commands Comp...
Introduction To Git For Version Control Architecture And Common Commands Comp...Introduction To Git For Version Control Architecture And Common Commands Comp...
Introduction To Git For Version Control Architecture And Common Commands Comp...
 
Grokking opensource with github
Grokking opensource with githubGrokking opensource with github
Grokking opensource with github
 
Introduzione a Git (ITA - 2017)
Introduzione a Git (ITA - 2017)Introduzione a Git (ITA - 2017)
Introduzione a Git (ITA - 2017)
 
Lectores y escritores
Lectores y escritoresLectores y escritores
Lectores y escritores
 
Giới thiệu Git và một số tính năng cơ bản
Giới thiệu Git và một số tính năng cơ bảnGiới thiệu Git và một số tính năng cơ bản
Giới thiệu Git và một số tính năng cơ bản
 
Cursus phpunit
Cursus phpunitCursus phpunit
Cursus phpunit
 

Destacado

Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners HubSpot
 
Introducción al uso Git y GitHub para trabajo colaborativo
Introducción al uso Git y GitHub para trabajo colaborativoIntroducción al uso Git y GitHub para trabajo colaborativo
Introducción al uso Git y GitHub para trabajo colaborativoJuan J. Merelo
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a gitKeopx
 
GitHub para el resto de nosotros
GitHub para el resto de nosotrosGitHub para el resto de nosotros
GitHub para el resto de nosotrosnoticiascac
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantesnscoder_mad
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitSergio Rus
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHubdrsevilla
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque prácticoPatxi Gortázar
 
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente? LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente? emateucr
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada diaAlan Descoins
 
Integración contínua con Jenkins
Integración contínua con JenkinsIntegración contínua con Jenkins
Integración contínua con JenkinsCésar Hernández
 

Destacado (20)

Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
Introducción al uso Git y GitHub para trabajo colaborativo
Introducción al uso Git y GitHub para trabajo colaborativoIntroducción al uso Git y GitHub para trabajo colaborativo
Introducción al uso Git y GitHub para trabajo colaborativo
 
Git, GitHub y Markdown
Git, GitHub y MarkdownGit, GitHub y Markdown
Git, GitHub y Markdown
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
GitHub para el resto de nosotros
GitHub para el resto de nosotrosGitHub para el resto de nosotros
GitHub para el resto de nosotros
 
Minicurso Git
Minicurso GitMinicurso Git
Minicurso Git
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHub
 
git and github
git and githubgit and github
git and github
 
Jenkins, no me rompas los builds!
Jenkins, no me rompas los builds!Jenkins, no me rompas los builds!
Jenkins, no me rompas los builds!
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente? LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada dia
 
Git tutorial
Git tutorial Git tutorial
Git tutorial
 
Introducción a git y git hub
Introducción a git y git hubIntroducción a git y git hub
Introducción a git y git hub
 
Integración contínua con Jenkins
Integración contínua con JenkinsIntegración contínua con Jenkins
Integración contínua con Jenkins
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
 
Git and Github
Git and GithubGit and Github
Git and Github
 

Similar a Mini-tutorial de git

Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando GitHugo Gilmar Erazo
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasJosé Moreno
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitManuel Ceron
 
Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con GitAdolfo Fitoria
 
Introducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitIntroducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitDrPantera
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GITKeopx
 
Mejora tu productividad con git
Mejora tu productividad con gitMejora tu productividad con git
Mejora tu productividad con gitch1l3no
 
Git y Github basico.pptx
Git y Github basico.pptxGit y Github basico.pptx
Git y Github basico.pptxssuser36d4d3
 
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDADTodo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDADDIEGOALBERTOENRIQUEZ4
 
Taller breve de introduccion a Git
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a GitMario IC
 
GIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfGIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfMartinBonuccelli
 
Administra tu código con Git y Github
Administra tu código con Git y GithubAdministra tu código con Git y Github
Administra tu código con Git y GithubJavier Novoa Cataño
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4fyomaira
 
Induccion0_GitLab.pptx
Induccion0_GitLab.pptxInduccion0_GitLab.pptx
Induccion0_GitLab.pptxssuser3ff40a
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con gitJuan Vladimir
 
Control de versiones con git
Control de versiones con gitControl de versiones con git
Control de versiones con gitEudris Cabrera
 

Similar a Mini-tutorial de git (20)

Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con Git
 
Introducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitIntroducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y git
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
 
Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
Mejora tu productividad con git
Mejora tu productividad con gitMejora tu productividad con git
Mejora tu productividad con git
 
Git y Github basico.pptx
Git y Github basico.pptxGit y Github basico.pptx
Git y Github basico.pptx
 
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDADTodo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
 
Taller breve de introduccion a Git
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a Git
 
GIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfGIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdf
 
Tema 1 Control de Versiones
Tema 1 Control de VersionesTema 1 Control de Versiones
Tema 1 Control de Versiones
 
Administra tu código con Git y Github
Administra tu código con Git y GithubAdministra tu código con Git y Github
Administra tu código con Git y Github
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4
 
Induccion0_GitLab.pptx
Induccion0_GitLab.pptxInduccion0_GitLab.pptx
Induccion0_GitLab.pptx
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
 
Control de versiones con git
Control de versiones con gitControl de versiones con git
Control de versiones con git
 

Más de Antonio Ognio

Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...Antonio Ognio
 
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?Antonio Ognio
 
Organizando una Hackparty
Organizando una HackpartyOrganizando una Hackparty
Organizando una HackpartyAntonio Ognio
 
Redis: servidor de estructuras de datos
Redis: servidor de estructuras de datosRedis: servidor de estructuras de datos
Redis: servidor de estructuras de datosAntonio Ognio
 
Lenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo webLenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo webAntonio Ognio
 
Bases de datos NoSQL - Huancayo - 2010
Bases de datos NoSQL - Huancayo - 2010Bases de datos NoSQL - Huancayo - 2010
Bases de datos NoSQL - Huancayo - 2010Antonio Ognio
 
Desarrollando con PHP en Windows
Desarrollando con PHP en WindowsDesarrollando con PHP en Windows
Desarrollando con PHP en WindowsAntonio Ognio
 
Gestor de paquetes YUM
Gestor de paquetes YUMGestor de paquetes YUM
Gestor de paquetes YUMAntonio Ognio
 
Mejorando la seguridad del servicio SSH - Hardening
Mejorando la seguridad del servicio SSH - HardeningMejorando la seguridad del servicio SSH - Hardening
Mejorando la seguridad del servicio SSH - HardeningAntonio Ognio
 
¿Porqué Python? ...y Django
¿Porqué Python? ...y Django¿Porqué Python? ...y Django
¿Porqué Python? ...y DjangoAntonio Ognio
 
Ubuntu Server Edition 9.04 Jaunty Jackalope
Ubuntu Server Edition 9.04 Jaunty JackalopeUbuntu Server Edition 9.04 Jaunty Jackalope
Ubuntu Server Edition 9.04 Jaunty JackalopeAntonio Ognio
 
Consejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
Consejos y trucos de supervivencia para nuevos usuarios de GNU/LinuxConsejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
Consejos y trucos de supervivencia para nuevos usuarios de GNU/LinuxAntonio Ognio
 

Más de Antonio Ognio (16)

Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
 
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
 
Organizando una Hackparty
Organizando una HackpartyOrganizando una Hackparty
Organizando una Hackparty
 
Lean Startups
Lean StartupsLean Startups
Lean Startups
 
Redis: servidor de estructuras de datos
Redis: servidor de estructuras de datosRedis: servidor de estructuras de datos
Redis: servidor de estructuras de datos
 
Lenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo webLenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo web
 
Bases de datos NoSQL - Huancayo - 2010
Bases de datos NoSQL - Huancayo - 2010Bases de datos NoSQL - Huancayo - 2010
Bases de datos NoSQL - Huancayo - 2010
 
Desarrollando con PHP en Windows
Desarrollando con PHP en WindowsDesarrollando con PHP en Windows
Desarrollando con PHP en Windows
 
Gestor de paquetes YUM
Gestor de paquetes YUMGestor de paquetes YUM
Gestor de paquetes YUM
 
Twixer (english)
Twixer (english)Twixer (english)
Twixer (english)
 
Twixer
TwixerTwixer
Twixer
 
Mejorando la seguridad del servicio SSH - Hardening
Mejorando la seguridad del servicio SSH - HardeningMejorando la seguridad del servicio SSH - Hardening
Mejorando la seguridad del servicio SSH - Hardening
 
¿Porqué Python? ...y Django
¿Porqué Python? ...y Django¿Porqué Python? ...y Django
¿Porqué Python? ...y Django
 
Ubuntu Server Edition 9.04 Jaunty Jackalope
Ubuntu Server Edition 9.04 Jaunty JackalopeUbuntu Server Edition 9.04 Jaunty Jackalope
Ubuntu Server Edition 9.04 Jaunty Jackalope
 
Consejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
Consejos y trucos de supervivencia para nuevos usuarios de GNU/LinuxConsejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
Consejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
 
REPLs
REPLsREPLs
REPLs
 

Último

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 

Último (15)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 

Mini-tutorial de git

  • 1. Mini-tutorial de Git Controlando las versiones del código fuente Antonio Ognio antonio@linux.org.pe
  • 2. Mini-tutorial de Git – Antonio Ognio Agenda ● ¿Qué es Git? ● Breve historia ● Comandos básicos ● Ejemplos prácticos ● Github ● Conclusiones
  • 3. Mini-tutorial de Git – Antonio Ognio ¿Qué es Git? ● Un sistema distribuído de control de versiones ● Software libre / Código abierto ● Cada “clón” es una repositorio completo ● Completo historial de revisiones ● No depende de un repositorio central ● Crear branches y hacer merge es rápido y fácil
  • 4. Mini-tutorial de Git – Antonio Ognio ¿Porqué nos podría interesar? ● Es utilizado por el proyecto del Kernel de Linux ● Fué escrito por Linus Torvalds (originalmente) ●Es utilizado en proyectos como: Perl, GNOME, Qt, Ruby on Rails, Android, Wine, etc ● Esta “de moda” con sitios como Github ● Ideal para un uso personal
  • 5. Mini-tutorial de Git – Antonio Ognio Sistema de control de versiones (RCS) ● Permite llevar cuenta de los cambios de un conjunto de archivos digitales en el tiempo ● Cada versión registrada en el tiempo es una “revisión” ● Muy utilizado para la gestión de código fuente ●Permite tanto a un desarrollador individual como a un grupo de programadores gestionar el código de un proyecto ● Especializados en archivos de texto (generalmente)
  • 6. Mini-tutorial de Git – Antonio Ognio ¿Qué otros sistemas de control de versiones hay? ● RCS (el original, de Pardue University luego GNU) ● CVS ● Subversion (SVN) ● Mercurial (hg) ● Bazaar (bzr) ● Visual SourceSafe (Microsoft)
  • 7. Mini-tutorial de Git – Antonio Ognio ¿Porqué es “distribuído”? ● No requiere un repositorio “central” (como svn) ● Cada copia o “clón” es autosuficiente y completa ● Cualquier copia se puede actualizar contra otra
  • 8. Mini-tutorial de Git – Antonio Ognio Breve Historia ● El Kernel Linux es el proyecto de código abierto más grande y con más actividad que existe en el mundo ●En el 2002 Linus Torvalds encontró en BitKeeper, un producto comercial de la empresa BitMover un RCS superior y decidió usarlo ● Stallman lo criticó, Alan Cox (Kernel 2.2) se opuso pero igual se utilizó gracias a una licencia especial para proyectos libres extendida por Larry McVoy
  • 9. Mini-tutorial de Git – Antonio Ognio Breve Historia (continuación) ● En 2005 se eliminó la licencia gratuita de BitKeeper señalando a Andrew Tridgell (TRAC) de haber hecho ingeniería reversa (cosa que el desmintió) ● Linus Torvalds tomó el toro por las astas y escribió el mismo un sistema RCS con lo mejor de SVN, Bitkeeper y las mejoras necesarias para el kernel ●Luego de 2 semanas de no trabajar en el kernel Linus crea “GIT” y comienza la historia...
  • 10. Mini-tutorial de Git – Antonio Ognio ¿Porqué Linus tuvo que crear Git? ●Ni siquiera BitKeeper era lo suficientemente rápido para las necesidades del kernel como proyecto ●Muchos parches complicados tomaban hasta 30 segundos en aplicarse ●Sincronizar las versiones entre Linus Torvalds y Andrew Morton (mantenedor de la rama 2.6 demoraba 2 horas!) ● Se necesitaba algo veloz y distribuído, nace Git!
  • 11. Mini-tutorial de Git – Antonio Ognio Comandos básicos
  • 12. Mini-tutorial de Git – Antonio Ognio Comandos básicos http://ktown.kde.org/~zrusin/git/
  • 13. Mini-tutorial de Git – Antonio Ognio Ejemplos prácticos ● Iniciar un proyecto ● Ir trabajando por “pedacitos” ● Revisar el trabajo realizado ● Corregir errores ● Trabajando con un repositorio remoto Tomado de: http://www.spheredev.org/wiki/Git_for_the_lazy
  • 14. Mini-tutorial de Git – Antonio Ognio Iniciar un proyecto 1. Crear una carpeta, entrar a una ya existente o descomprimir un archivo comprimido cd proyecto 2. Decirle a git que empiece a llevar cuenta de los cambios git init . 3. Agregar todos los archivos presentes git add . 4. Crear la revisión inicial git commit -m 'Revisión inicial'
  • 15. Mini-tutorial de Git – Antonio Ognio Ir trabajando por “pedacitos” 1. Ver que archivos han cambiado git status 2. Ver los cambios en formato de parche (diff) git diff 3. Agregar a la próxima revisión los archivos mencionados en el paso 1 que deseamos incluir git add archivo1 archivo2 carpeta1 carpeta2 4. Crear una nueva revisión git commit -m 'Nueva revisión con tales cambios'
  • 16. Mini-tutorial de Git – Antonio Ognio Revisar el trabajo realizado 1. Ver el historial de cambios git log 2. Ver solo las últimas n (ej. 3) revisiones: git log –n3 3. Ver cambios de forma detallada git log --stat --summary
  • 17. Mini-tutorial de Git – Antonio Ognio Corregir errores 1. Descartar todos los cambios hechos desde la última revisión git reset --hard 2. Descartar cambios en un archivo individual (actualizar a la última revisión conocida) git checkout archivo 3. Corrigiendo la descripción de la última revisión (el último commit) git commit --amend 4. Incluir algo que debió estar en la última revisión creada git reset --soft HEAD^ git add olvidado1 olvidado2 git commit
  • 18. Mini-tutorial de Git – Antonio Ognio Trabajando con un repositorio remoto 1. Crear un “clón” del repositorio remoto git clone git://servidor.com/ruta/al/proyecto.git 2. Agregar el origen remoto git remote add origin git://servidor.com/ruta/al/proyecto.git 3. Hacer cambios y agregar los archivos modificados a una nueva revisión git add archivo1 archivo2 carpeta1 carpeta2 git commit -m 'Nueva revisión con tales cambios' 4. Enviar los cambios de vuelta al repositorio remoto git push origin master
  • 19. Mini-tutorial de Git – Antonio Ognio Github ● Sitio web de hospedaje de proyectos usando git ● Plan básico (gratuito) + otros planes pagados ● 300 MB de almacenamiento para proyectos ●Permite hacer “fork” con facilidad y luego solicitar al dueño del repo original que haga “pull” ● Una “red social” para programadores :)
  • 20. Mini-tutorial de Git – Antonio Ognio Github
  • 21. Mini-tutorial de Git – Antonio Ognio Github
  • 22. Mini-tutorial de Git – Antonio Ognio Github
  • 23. Mini-tutorial de Git – Antonio Ognio Conclusiones ● Git es una herramienta rápida, eficiente y moderna para el control de versiones de proyectos con archivos digitales sean o no código fuente ●Git permite flujos de trabajo distribuídos en los que no tiene porque existir un repositorio central ●Linus Torvalds creó Git de acuerdo a las necesidades del kernel pero ofreció una gran herramienta a la comunidad en general