SlideShare una empresa de Scribd logo
1 de 44
Control de Versiones
Maximiliano A. Fontana - LinkedIn: @maxfontana90
¿Qué es GIT? ¿Y Github?
GIT es un software diseñado por Linus
Torvalds que permite la gestión y el control de
versiones de una aplicación Software. Esta se
encuentra disponible en dos versiones:
● Versión CLIENTE.
● Versión SERVIDOR.
¿Y Github?
GITHUB es un servicio en la nube cuyo fin es
alojar en sus servidores (Servidores GIT)
repositorios GIT de manera tal que un proyecto
pueda accederse en cualquier momento y
desde cualquier lugar. El servicio de GITHUB
es gratuito para todo repositorio de acceso
público. Repositorios privados requieren el
pago de un arancel.
Caracteristicas GITHUB
● Issue Tracking (Seguimiento de Incidencias).
● Soporte para Milestones (Hitos) y Labels (Etiquetas).
● Soporte para palabras claves en Commits
(closes,fixes).
● Soporte para discusiones detalladas acerca de todos y
cada uno de los commits realizados (por línea y por
commit en su totalidad).
● Ver Ejemplo
¿Existen Alternativas a GITHUB?
Conceptos Básicos
Conceptos
Repositorio: Se denomina al sitio donde se
almacenan los archivos del proyecto en forma
centralizada.
Commit: Consignación de un conjunto de
cambios. Un commit genera una nueva
versión. La misma tiene asociado un conjunto
de cambios.
Conceptos
Branch: Es una ramificación de un proyecto.
De forma ideal (los proyectos open-source de
hecho lo implementan) todo proyecto debería
tener cuatro bifurcaciones:
● Master
● Development
● Features
● Hotfixes
Conceptos
Master: Es la rama principal. Contiene el repositorio que
contiene la versión de la aplicación que se encuentra en
producción, por lo que debe estar siempre en un estado
“estable”.
Conceptos
Development: Es un ramificación de master. Es la rama
de integración de todas las nuevas funcionalidades. Luego
que se realice la integración y se corrijan los errores (en
caso de haber alguno), es decir que la rama se encuentre
en un estado “estable”, se puede hacer una fusión entre
las ramas de development y la rama master.
Conceptos
Features: Cada nueva funcionalidad se debe realizar en
una rama nueva, específica para esa funcionalidad. Estas
se deben sacar de development. Una vez que la
funcionalidad se encuentre “cocinada”, se hace un fusión
de la rama especifica de dicha funcionalidad sobre la rama
development, donde se integrará con las demás
funcionalidades.
Conceptos
Hotfix: Esta rama se utiliza para solucionar bugs que
surgen en la aplicación que se encuentra en producción,
por lo que se deben arreglar y publicar de forma urgente.
Es por ello, que son ramas que bifurcan de master. Una
vez corregido el error, se debe fusionar la misma sobre
master. Al final, para que no quede desactualizada, se
debe realizar el merge de master sobre development.
Conceptos
Merge: Es la fusión o mezcla de dos ramas del
proyecto.
Staging Area: Área de preparado de cambios.
Snapshot: Imagen/Fotocopia del estado actual
de un proyecto.
HEAD: Cabecera que apunta al último
snapshot (commit) realizado.
Funcionamiento de GIT
Acciones Básicas
Acciones Básicas
clone: Clonar un repositorio.
init: Crear un repositorio en forma local.
add: Agregar un documento a un área de
preparación de cambios (Staging area).
commit: Consignar un conjunto de cambios.
push: Subir al servidor el/los cambios
realizados (Una nueva versión).
Acciones Básicas
pull: Descargar y actualizar los cambios
realizados en el repositorio remoto.
checkout: Crear una nueva rama/bifurcación
del proyecto (repositorio) actual.
touch: Crear un archivo.
reset: Cambiar el estado del repositorio a un
estado anterior.
Acciones Básicas
diff: Ver los cambios realizados entre dos
versiones (Línea por línea).
log: Ver un log de los cambios realizados.
merge: Unificar, mezclar cambios realizados
en dos ramas y/o bifurcaciones del proyecto.
branch: Lista, crear o eliminar ramas y/o
bifurcaciones del proyecto.
Primeros Comandos
Primeros Comandos
Configurar datos del usuario:
~$ git config --global user.email “fperez@ejemplo.com”
~$ git config --global user.name “Fulanito Perez”
Iniciar un repositorio local:
~$ cd D:
~$ cd ruta/a/mi/proyecto
~$ git init
Primeros Comandos
Sincronizar repositorio remoto en el directorio
actual:
~$ git remote add origin http://url/del/repositorio/git.git
En este punto estamos listos para agregar
nuestros archivos y editarlos hasta que
estemos seguros de que deseamos sincronizar
el repositorio local con el remoto.
Primeros Comandos
El archivo .gitignore se utiliza para definir la
lista de recursos que no se deben incluir en la
lista de recursos “listos para agregarlos a la
staging area”.
Crear el archivo .gitignore:
~$ touch .gitignore
Realizar un Commit
Realizar un commit
Listar archivos ready to stage:
~$ git status
Agregar archivos de la lista a la staging area.
~$ git add mi_archivo.txt
Enviar commit con un comentario.
~$ git commit -m “Este es el primer commit.”
~$ git commit -am “Este es el primer commit.” // No
necesita del comando “git add”.
Realizar un commit
Listar la lista de commits realizados.
~$ git log | ~$ git log -n <numero_max_commits>
Resultado (Lista de N commits):
commit 6cdae7e324d73331ab7668a667a1cf3a8a6fa369
Author: Fulanito Perez <fperez@ejemplo.com>
Date: Wed Apr 30 10:17:54 2014 -0300
Agrego modificaciones sobre...
Push commits
Push Commits - Subir al repo.
Listar la lista de commits realizados.
~$ git push -u origin <<nombre_branch>>
Por defecto siempre se trabaja y se sincroniza
en el branch “master”.
~$ git push -u origin master
Push Commits - Subir al repo.
Listar la lista de commits realizados.
~$ git push -u origin <<nombre_branch>>
Por defecto siempre se trabaja y se sincroniza
en el branch “master”.
~$ git push -u origin master
Gestión Branches
Gestión Branches
Crear un branch (Ramificación):
~$ git branch <<nombre_branch>>
~$ git branch development //Ejemplo
Crear un branch y cambiar al mismo:
~$ git checkout -b <<nombre_branch>>
~$ git checkout -b development //Ejemplo
Gestión Branches
Listar todas las ramas locales:
~$ git branch //Locales.
~$ git branch -a //Locales y remotas.
Eliminar una rama:
~$ git branch -d <<nombre_rama>>
~$ git branch -d feature_ABMCliente //Ejemplo
Gestión Branches
Fusionar las ramas master y hotfix.
~$ git checkout master //cambiar a la rama master.
~$ git merge hotfix //Fusionar hotfix con master.
Eliminar una rama:
~$ git branch -d <<nombre_rama>>
~$ git branch -d feature_ABMCliente //Ejemplo
Deshacer Commits
Deshacer Commits
Deshacer un commit:
~$ git reset --soft HEAD^ // Mantiene estado archivos.
~$ git reset --hard HEAD^ // No mantiene estado archivos.
~$ git reset --soft HEAD~N// Deshace los últimos N
commits anteriores. Mantiene estado.
Crear Alias de comandos:
~$ git config --global alias.undo-commit 'reset --soft
HEAD^'
Deshacer Commits
E => Estado Archivos - Master => Cabecera HEAD actual.
A, B, C => Commits realizados.
~$ git reset --hard HEAD^ || ~$ git reset --soft HEAD^
(E)
(E)
A-B-C
A-B-C
↑ ↑
master
Deshacer Commits
Crear un alias para deshacer el último commit:
~$ git config --global alias.undo-commit 'reset --soft
HEAD^'
Links de Utilidad
Links de Utilidad
● http://try.github.com/
● http://nvie.com/posts/a-successful-git-
branching-model/
● http://weblog.masukomi.org/2008/07/12/han
dling-and-avoiding-conflicts-in-git

Más contenido relacionado

La actualidad más candente

Git slides
Git slidesGit slides
Git slidesNanyak S
 
Git flow Introduction
Git flow IntroductionGit flow Introduction
Git flow IntroductionDavid Paluy
 
Version control system and Git
Version control system and GitVersion control system and Git
Version control system and Gitramubonkuri
 
Version Control System - Git
Version Control System - GitVersion Control System - Git
Version Control System - GitCarlo Bernaschina
 
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git TutorialSage Sharp
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to GitLukas Fittl
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow soloviniciusban
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategiesjstack
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Simplilearn
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdfTilton2
 
A successful Git branching model
A successful Git branching model A successful Git branching model
A successful Git branching model abodeltae
 
A Practical Introduction to git
A Practical Introduction to gitA Practical Introduction to git
A Practical Introduction to gitEmanuele Olivetti
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesLeandro Cavalcante
 

La actualidad más candente (20)

Git slides
Git slidesGit slides
Git slides
 
Git
GitGit
Git
 
Git Grundlagen
Git GrundlagenGit Grundlagen
Git Grundlagen
 
Git training v10
Git training v10Git training v10
Git training v10
 
Git flow Introduction
Git flow IntroductionGit flow Introduction
Git flow Introduction
 
Version control system and Git
Version control system and GitVersion control system and Git
Version control system and Git
 
Version Control System - Git
Version Control System - GitVersion Control System - Git
Version Control System - Git
 
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git Tutorial
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow solo
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategies
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
 
github-actions.pdf
github-actions.pdfgithub-actions.pdf
github-actions.pdf
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
 
A successful Git branching model
A successful Git branching model A successful Git branching model
A successful Git branching model
 
A Practical Introduction to git
A Practical Introduction to gitA Practical Introduction to git
A Practical Introduction to git
 
Git real slides
Git real slidesGit real slides
Git real slides
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de Versões
 
Git and git flow
Git and git flowGit and git flow
Git and git flow
 

Destacado

Introducción a git
Introducción a gitIntroducción a git
Introducción a gitKeopx
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a gitbetabeers
 
Introduccion a Git
Introduccion a GitIntroduccion a Git
Introduccion a GitStratebi
 
Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de gitAntonio Ognio
 
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
 

Destacado (7)

Minicurso Git
Minicurso GitMinicurso Git
Minicurso Git
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
Introduccion a Git
Introduccion a GitIntroduccion a Git
Introduccion a Git
 
Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de git
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
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
 

Similar a Introducción 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.pdfMartinBonuccelli
 
Flujo de trabajo básico con git
Flujo de trabajo básico con gitFlujo de trabajo básico con git
Flujo de trabajo básico con gitJan Sanchez
 
Git & GitHub Part II
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part IIMax Rodriguez
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando GitHugo Gilmar Erazo
 
Técnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesTécnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesAngel Armenta
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantesnscoder_mad
 
Más allá de Git add/commit/push
Más allá de Git add/commit/pushMás allá de Git add/commit/push
Más allá de Git add/commit/pushAlexis Lopez
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GITKeopx
 
Git para no gitters
Git para no gittersGit para no gitters
Git para no gittersRojomorgan
 
Uso de git para el mantenimiento de parches locales o públicos
Uso de git para el mantenimiento  de parches locales o públicosUso de git para el mantenimiento  de parches locales o públicos
Uso de git para el mantenimiento de parches locales o públicosIñaki Arenaza
 
Versionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativoVersionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativoHernán Aguilera
 

Similar a Introducción a GIT (20)

Intro a GIT
Intro a GITIntro a GIT
Intro 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
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
Flujo de trabajo básico con git
Flujo de trabajo básico con gitFlujo de trabajo básico con git
Flujo de trabajo básico con git
 
Git & GitHub Part II
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part II
 
Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con Git
 
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
 
Un modelo exitoso para git
Un modelo exitoso para gitUn modelo exitoso para git
Un modelo exitoso para git
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
 
Técnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesTécnicas avanzadas de control de versiones
Técnicas avanzadas de control de versiones
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
 
Git y github básico
Git y github básicoGit y github básico
Git y github básico
 
Más allá de Git add/commit/push
Más allá de Git add/commit/pushMás allá de Git add/commit/push
Más allá de Git add/commit/push
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
 
Git para no gitters
Git para no gittersGit para no gitters
Git para no gitters
 
Git - Gitlab
Git - GitlabGit - Gitlab
Git - Gitlab
 
Uso de git para el mantenimiento de parches locales o públicos
Uso de git para el mantenimiento  de parches locales o públicosUso de git para el mantenimiento  de parches locales o públicos
Uso de git para el mantenimiento de parches locales o públicos
 
Git.manual.usuario
Git.manual.usuarioGit.manual.usuario
Git.manual.usuario
 
gitflow
gitflowgitflow
gitflow
 
Versionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativoVersionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativo
 

Último

definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 

Último (20)

definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 

Introducción a GIT

  • 1. Control de Versiones Maximiliano A. Fontana - LinkedIn: @maxfontana90
  • 2. ¿Qué es GIT? ¿Y Github? GIT es un software diseñado por Linus Torvalds que permite la gestión y el control de versiones de una aplicación Software. Esta se encuentra disponible en dos versiones: ● Versión CLIENTE. ● Versión SERVIDOR.
  • 3. ¿Y Github? GITHUB es un servicio en la nube cuyo fin es alojar en sus servidores (Servidores GIT) repositorios GIT de manera tal que un proyecto pueda accederse en cualquier momento y desde cualquier lugar. El servicio de GITHUB es gratuito para todo repositorio de acceso público. Repositorios privados requieren el pago de un arancel.
  • 4.
  • 5. Caracteristicas GITHUB ● Issue Tracking (Seguimiento de Incidencias). ● Soporte para Milestones (Hitos) y Labels (Etiquetas). ● Soporte para palabras claves en Commits (closes,fixes). ● Soporte para discusiones detalladas acerca de todos y cada uno de los commits realizados (por línea y por commit en su totalidad). ● Ver Ejemplo
  • 7.
  • 9. Conceptos Repositorio: Se denomina al sitio donde se almacenan los archivos del proyecto en forma centralizada. Commit: Consignación de un conjunto de cambios. Un commit genera una nueva versión. La misma tiene asociado un conjunto de cambios.
  • 10. Conceptos Branch: Es una ramificación de un proyecto. De forma ideal (los proyectos open-source de hecho lo implementan) todo proyecto debería tener cuatro bifurcaciones: ● Master ● Development ● Features ● Hotfixes
  • 11.
  • 12. Conceptos Master: Es la rama principal. Contiene el repositorio que contiene la versión de la aplicación que se encuentra en producción, por lo que debe estar siempre en un estado “estable”.
  • 13. Conceptos Development: Es un ramificación de master. Es la rama de integración de todas las nuevas funcionalidades. Luego que se realice la integración y se corrijan los errores (en caso de haber alguno), es decir que la rama se encuentre en un estado “estable”, se puede hacer una fusión entre las ramas de development y la rama master.
  • 14. Conceptos Features: Cada nueva funcionalidad se debe realizar en una rama nueva, específica para esa funcionalidad. Estas se deben sacar de development. Una vez que la funcionalidad se encuentre “cocinada”, se hace un fusión de la rama especifica de dicha funcionalidad sobre la rama development, donde se integrará con las demás funcionalidades.
  • 15. Conceptos Hotfix: Esta rama se utiliza para solucionar bugs que surgen en la aplicación que se encuentra en producción, por lo que se deben arreglar y publicar de forma urgente. Es por ello, que son ramas que bifurcan de master. Una vez corregido el error, se debe fusionar la misma sobre master. Al final, para que no quede desactualizada, se debe realizar el merge de master sobre development.
  • 16. Conceptos Merge: Es la fusión o mezcla de dos ramas del proyecto. Staging Area: Área de preparado de cambios. Snapshot: Imagen/Fotocopia del estado actual de un proyecto. HEAD: Cabecera que apunta al último snapshot (commit) realizado.
  • 18.
  • 19.
  • 20.
  • 22. Acciones Básicas clone: Clonar un repositorio. init: Crear un repositorio en forma local. add: Agregar un documento a un área de preparación de cambios (Staging area). commit: Consignar un conjunto de cambios. push: Subir al servidor el/los cambios realizados (Una nueva versión).
  • 23. Acciones Básicas pull: Descargar y actualizar los cambios realizados en el repositorio remoto. checkout: Crear una nueva rama/bifurcación del proyecto (repositorio) actual. touch: Crear un archivo. reset: Cambiar el estado del repositorio a un estado anterior.
  • 24. Acciones Básicas diff: Ver los cambios realizados entre dos versiones (Línea por línea). log: Ver un log de los cambios realizados. merge: Unificar, mezclar cambios realizados en dos ramas y/o bifurcaciones del proyecto. branch: Lista, crear o eliminar ramas y/o bifurcaciones del proyecto.
  • 26. Primeros Comandos Configurar datos del usuario: ~$ git config --global user.email “fperez@ejemplo.com” ~$ git config --global user.name “Fulanito Perez” Iniciar un repositorio local: ~$ cd D: ~$ cd ruta/a/mi/proyecto ~$ git init
  • 27. Primeros Comandos Sincronizar repositorio remoto en el directorio actual: ~$ git remote add origin http://url/del/repositorio/git.git En este punto estamos listos para agregar nuestros archivos y editarlos hasta que estemos seguros de que deseamos sincronizar el repositorio local con el remoto.
  • 28. Primeros Comandos El archivo .gitignore se utiliza para definir la lista de recursos que no se deben incluir en la lista de recursos “listos para agregarlos a la staging area”. Crear el archivo .gitignore: ~$ touch .gitignore
  • 30. Realizar un commit Listar archivos ready to stage: ~$ git status Agregar archivos de la lista a la staging area. ~$ git add mi_archivo.txt Enviar commit con un comentario. ~$ git commit -m “Este es el primer commit.” ~$ git commit -am “Este es el primer commit.” // No necesita del comando “git add”.
  • 31. Realizar un commit Listar la lista de commits realizados. ~$ git log | ~$ git log -n <numero_max_commits> Resultado (Lista de N commits): commit 6cdae7e324d73331ab7668a667a1cf3a8a6fa369 Author: Fulanito Perez <fperez@ejemplo.com> Date: Wed Apr 30 10:17:54 2014 -0300 Agrego modificaciones sobre...
  • 33. Push Commits - Subir al repo. Listar la lista de commits realizados. ~$ git push -u origin <<nombre_branch>> Por defecto siempre se trabaja y se sincroniza en el branch “master”. ~$ git push -u origin master
  • 34. Push Commits - Subir al repo. Listar la lista de commits realizados. ~$ git push -u origin <<nombre_branch>> Por defecto siempre se trabaja y se sincroniza en el branch “master”. ~$ git push -u origin master
  • 36. Gestión Branches Crear un branch (Ramificación): ~$ git branch <<nombre_branch>> ~$ git branch development //Ejemplo Crear un branch y cambiar al mismo: ~$ git checkout -b <<nombre_branch>> ~$ git checkout -b development //Ejemplo
  • 37. Gestión Branches Listar todas las ramas locales: ~$ git branch //Locales. ~$ git branch -a //Locales y remotas. Eliminar una rama: ~$ git branch -d <<nombre_rama>> ~$ git branch -d feature_ABMCliente //Ejemplo
  • 38. Gestión Branches Fusionar las ramas master y hotfix. ~$ git checkout master //cambiar a la rama master. ~$ git merge hotfix //Fusionar hotfix con master. Eliminar una rama: ~$ git branch -d <<nombre_rama>> ~$ git branch -d feature_ABMCliente //Ejemplo
  • 40. Deshacer Commits Deshacer un commit: ~$ git reset --soft HEAD^ // Mantiene estado archivos. ~$ git reset --hard HEAD^ // No mantiene estado archivos. ~$ git reset --soft HEAD~N// Deshace los últimos N commits anteriores. Mantiene estado. Crear Alias de comandos: ~$ git config --global alias.undo-commit 'reset --soft HEAD^'
  • 41. Deshacer Commits E => Estado Archivos - Master => Cabecera HEAD actual. A, B, C => Commits realizados. ~$ git reset --hard HEAD^ || ~$ git reset --soft HEAD^ (E) (E) A-B-C A-B-C ↑ ↑ master
  • 42. Deshacer Commits Crear un alias para deshacer el último commit: ~$ git config --global alias.undo-commit 'reset --soft HEAD^'
  • 44. Links de Utilidad ● http://try.github.com/ ● http://nvie.com/posts/a-successful-git- branching-model/ ● http://weblog.masukomi.org/2008/07/12/han dling-and-avoiding-conflicts-in-git