SlideShare una empresa de Scribd logo
GIT
MANEJADOR DE VERSIONES
• Es el sistema de control de versiones moderno más utilizado del mundo
• Git es un proyecto de código abierto maduro y con un mantenimiento activo
• Git, que presenta una arquitectura distribuida, es un ejemplo de DVCS (sistema de
control de versiones distribuido, por sus siglas en inglés).
• La copia de trabajo del código de cada desarrollador es también un repositorio
que puede albergar el historial completo de todos los cambios.
RENDIMIENTO
• La confirmación de nuevos cambios, la ramificación, la fusión y la comparación de versiones
anteriores se han optimizado en favor del rendimiento.
• Alice, hace cambios en el código fuente (añade una función para la próxima versión 2.0) y, luego,
los confirma con mensajes descriptivos. Después, trabaja en una segunda función y confirma
también esos cambios. De forma natural, estos se almacenan como elementos independientes
de trabajo en el historial de versiones. A continuación, Alice cambia a la rama de la versión 1.3
del mismo software para corregir un error que afecta únicamente a esa versión anterior. El
objetivo es permitir al equipo de Alice lanzar una publicación de corrección de errores, la
versión 1.3.1, antes de que la 2.0 esté lista. Tras ello, Alice puede volver a la rama 2.0 para seguir
trabajando en las nuevas funciones de la versión. Todo esto puede tener lugar sin necesidad de
acceso a la red y, por consiguiente, es un proceso rápido y fiable. Alice podría incluso hacerlo
mientras viaja en avión. Cuando esté lista para enviar al repositorio remoto todos los cambios
confirmados de modo individual, bastará con que utilice un solo comando.
SEGURIDAD
• Git se ha diseñado con la principal prioridad de conservar la integridad del
código fuente gestionado. El contenido de los archivos y las verdaderas
relaciones entre estos y los directorios, las versiones, las etiquetas y las
confirmaciones, todos ellos objetos del repositorio de Git, están protegidos con
un algoritmo de hash criptográficamente seguro llamado "SHA1". De este modo,
se salvaguarda el código y el historial de cambios frente a las modificaciones
accidentales y maliciosas, y se garantiza que el historial sea totalmente trazable.
FLEXIBILIDAD
• Git es flexible en varios aspectos: en la capacidad para varios tipos de flujos de
trabajo de desarrollo no lineal, en su eficiencia en proyectos tanto grandes como
pequeños y en su compatibilidad con numerosos sistemas y protocolos.
• Git se ha ideado para posibilitar la ramificación y el etiquetado como procesos de
primera importancia y las operaciones que afectan a las ramas y las etiquetas
(como la fusión o la reversión) también se almacenan en el historial de cambios.
GIT ES UN ESTÁNDAR DE FACTO
• Un gran número de desarrolladores ya tienen experiencia con Git y una parte
importante de los graduados universitarios puede que solo haya aprendido a
usar dicha solución.
• El predominio de Git también implica que muchos servicios y herramientas de
software de terceros ya están integrados con Git, incluidos los IDE, y nuestras
propias herramientas
TRES ESTADOS DE GIT
• Working Directory (modified)
> git add
• Staging Area (staged) Lista de archivos que están listos para subir
> git commit
• Local Repository (committed)
Push a repositorio remoto
INSTALACIÓN DE GIT EN WINDOWS
• Instalador independiente de Git para Windows
• Descárgate el instalador de Git para Windows más reciente.
• Cuando hayas iniciado correctamente el instalador, deberías ver la pantalla del
asistente de configuración de Git. Selecciona las opciones Next (Siguiente)
y Finish (Finalizar) para completar la instalación. Las opciones predeterminadas
son las más lógicas en la mayoría de los casos.
GESTORES DE VERSIONES
• GitHub
• GitLab
• BitBucket
INSTALACIÓN DE GIT EN WINDOWS (CONT.)
IR A LA CARPETA DESEADA PARA EL PROYECTO
• Ir a la carpeta deseada para el proyecto
• git init
• ls –a
• Agregar un archivo a la carpeta
• git add prueba.txt
• git status
• Archivo en verde esta incluido al staged y en rojo los que no
• Agregar un archivo nuevo para ver el detalle
• Modificar un archivo internamente y volver a teclar git status
• git add --all para agregar todos de una vez
• Pasar del estado 2 al estado 3
• git commit –m “Comentario acerca de los cambios”
• Si no se pone –m permite abrir un archivo en el editor de texto seleccionado (VIM
por default)
• Para guardar Esc :wq!
• Para ver el estado de los commits se utiliza git log
• Abrir cuenta en GitHub
• Editar perfil
• Crear un nuevo repositorio
• Agregar el repositorio remoto con el comando git remote add origin
https://github.com/tpihugo/prueba.git
• git remote –v para ver el repositorio agregado
• git push --u origin master (push envia desde el repositorio remoto al local)
• Poner los datos de acceso
• Ir a GitHub y ver si están los archivos en los repositorios
• Modificar el contenido, hacer git add, git commit y git push origin master
• Git pull, cuando se trabaja con otras personas, se pueden jalar al código de uno
con este comando
• Hacer cambios desde la página de GitHub y ver cuantos commits se han hecho
con git log
• Para traernos el código es con
• git pull origin master
RAMAS Y FLUJO EN GIT Y GITHUB
• https://guides.github.com/introduction/flow/
Rama Master – Línea principal
Una rama es un clon del proyecto
Pull Request es solicitar de la rama
propia a la master
CREAR UNA RAMA
• Primero ver la rama actual
git branch
• Crear una nueva rama
git branch primera_rama
• Volver a ver la rama actual
git branch
• Si se desea eliminar sería con
git branch –d primera_rama
Es importante recordar siempre tener la versión más actualizada por lo que antes de generar una rama
daremos
git pull origin master
GIT MERGE (FAST FORWARD)
• Crear una rama y moverse a ella
git checkout –b rama_nueva
• Para mezclar código de la rama propia a la rama master que tiene cambios
• Pasar a la rama master o a la que queremos afectar
git merge nombre_rama_con_cambios
• Cuando no hay cambios en la rama master, y es hace el merge se llama Fast
Forward, actualizando el master con los cambios nuevos.
GIT CHECKOUT
• Permite volver a una versión anterior en un commit
git checkout [cadena SHA]
• Con eso vamos a ir a esa versión, sin perder los cambios futuros, head es un
apuntador.
MANEJO DE CONFLICTOS
• Cuando nos desarrolladores modifican la misma línea del mismo archivo y el
desarrollador debe de decidir cual se queda

Más contenido relacionado

Similar a Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD

Introducción a git
Introducción a gitIntroducción a git
Introducción a git
Keopx
 
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
MartinBonuccelli
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
Juan Vladimir
 
Git y github básico
Git y github básicoGit y github básico
Git y github básico
Nelson Manuel Ordaz Yglesias
 
Git y github
Git y githubGit y github
¿Cómo elegir tu workflow de Git?
¿Cómo elegir tu workflow de Git?¿Cómo elegir tu workflow de Git?
¿Cómo elegir tu workflow de Git?
Gerónimo Di Pierro
 
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxGuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
fuenzalidarodrigo
 
Replacing SVN with Git for managers
Replacing SVN with Git for managersReplacing SVN with Git for managers
Replacing SVN with Git for managers
Gustavo Alejandro Vargas Tena
 
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora BlancoPresentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Antonio Luque Bravo
 
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesGit y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Paradigma Digital
 
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
Alexis Lopez
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4fyomaira
 
Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en Github
Carlos Huamaní
 
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
Javier Novoa Cataño
 
Induccion0_GitLab.pptx
Induccion0_GitLab.pptxInduccion0_GitLab.pptx
Induccion0_GitLab.pptx
ssuser3ff40a
 
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
DrPantera
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en español
Ramón Glez
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
Juan Victor Minaya León
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
InterGraphicDESIGNS
 
Mejora tu productividad con git
Mejora tu productividad con gitMejora tu productividad con git
Mejora tu productividad con git
ch1l3no
 

Similar a Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD (20)

Introducción a git
Introducción a gitIntroducción a git
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.pdf
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
 
Git y github básico
Git y github básicoGit y github básico
Git y github básico
 
Git y github
Git y githubGit y github
Git y github
 
¿Cómo elegir tu workflow de Git?
¿Cómo elegir tu workflow de Git?¿Cómo elegir tu workflow de Git?
¿Cómo elegir tu workflow de Git?
 
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxGuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
 
Replacing SVN with Git for managers
Replacing SVN with Git for managersReplacing SVN with Git for managers
Replacing SVN with Git for managers
 
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora BlancoPresentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
 
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesGit y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
 
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
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4
 
Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en Github
 
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
 
Induccion0_GitLab.pptx
Induccion0_GitLab.pptxInduccion0_GitLab.pptx
Induccion0_GitLab.pptx
 
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
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en español
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
 
Mejora tu productividad con git
Mejora tu productividad con gitMejora tu productividad con git
Mejora tu productividad con git
 

Último

biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 

Último (20)

biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 

Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD

  • 2. • Es el sistema de control de versiones moderno más utilizado del mundo • Git es un proyecto de código abierto maduro y con un mantenimiento activo • Git, que presenta una arquitectura distribuida, es un ejemplo de DVCS (sistema de control de versiones distribuido, por sus siglas en inglés). • La copia de trabajo del código de cada desarrollador es también un repositorio que puede albergar el historial completo de todos los cambios.
  • 3. RENDIMIENTO • La confirmación de nuevos cambios, la ramificación, la fusión y la comparación de versiones anteriores se han optimizado en favor del rendimiento. • Alice, hace cambios en el código fuente (añade una función para la próxima versión 2.0) y, luego, los confirma con mensajes descriptivos. Después, trabaja en una segunda función y confirma también esos cambios. De forma natural, estos se almacenan como elementos independientes de trabajo en el historial de versiones. A continuación, Alice cambia a la rama de la versión 1.3 del mismo software para corregir un error que afecta únicamente a esa versión anterior. El objetivo es permitir al equipo de Alice lanzar una publicación de corrección de errores, la versión 1.3.1, antes de que la 2.0 esté lista. Tras ello, Alice puede volver a la rama 2.0 para seguir trabajando en las nuevas funciones de la versión. Todo esto puede tener lugar sin necesidad de acceso a la red y, por consiguiente, es un proceso rápido y fiable. Alice podría incluso hacerlo mientras viaja en avión. Cuando esté lista para enviar al repositorio remoto todos los cambios confirmados de modo individual, bastará con que utilice un solo comando.
  • 4. SEGURIDAD • Git se ha diseñado con la principal prioridad de conservar la integridad del código fuente gestionado. El contenido de los archivos y las verdaderas relaciones entre estos y los directorios, las versiones, las etiquetas y las confirmaciones, todos ellos objetos del repositorio de Git, están protegidos con un algoritmo de hash criptográficamente seguro llamado "SHA1". De este modo, se salvaguarda el código y el historial de cambios frente a las modificaciones accidentales y maliciosas, y se garantiza que el historial sea totalmente trazable.
  • 5. FLEXIBILIDAD • Git es flexible en varios aspectos: en la capacidad para varios tipos de flujos de trabajo de desarrollo no lineal, en su eficiencia en proyectos tanto grandes como pequeños y en su compatibilidad con numerosos sistemas y protocolos. • Git se ha ideado para posibilitar la ramificación y el etiquetado como procesos de primera importancia y las operaciones que afectan a las ramas y las etiquetas (como la fusión o la reversión) también se almacenan en el historial de cambios.
  • 6. GIT ES UN ESTÁNDAR DE FACTO • Un gran número de desarrolladores ya tienen experiencia con Git y una parte importante de los graduados universitarios puede que solo haya aprendido a usar dicha solución. • El predominio de Git también implica que muchos servicios y herramientas de software de terceros ya están integrados con Git, incluidos los IDE, y nuestras propias herramientas
  • 7. TRES ESTADOS DE GIT • Working Directory (modified) > git add • Staging Area (staged) Lista de archivos que están listos para subir > git commit • Local Repository (committed) Push a repositorio remoto
  • 8.
  • 9. INSTALACIÓN DE GIT EN WINDOWS • Instalador independiente de Git para Windows • Descárgate el instalador de Git para Windows más reciente. • Cuando hayas iniciado correctamente el instalador, deberías ver la pantalla del asistente de configuración de Git. Selecciona las opciones Next (Siguiente) y Finish (Finalizar) para completar la instalación. Las opciones predeterminadas son las más lógicas en la mayoría de los casos.
  • 10. GESTORES DE VERSIONES • GitHub • GitLab • BitBucket
  • 11. INSTALACIÓN DE GIT EN WINDOWS (CONT.)
  • 12.
  • 13. IR A LA CARPETA DESEADA PARA EL PROYECTO • Ir a la carpeta deseada para el proyecto • git init • ls –a • Agregar un archivo a la carpeta • git add prueba.txt • git status • Archivo en verde esta incluido al staged y en rojo los que no • Agregar un archivo nuevo para ver el detalle
  • 14. • Modificar un archivo internamente y volver a teclar git status • git add --all para agregar todos de una vez • Pasar del estado 2 al estado 3 • git commit –m “Comentario acerca de los cambios” • Si no se pone –m permite abrir un archivo en el editor de texto seleccionado (VIM por default) • Para guardar Esc :wq!
  • 15. • Para ver el estado de los commits se utiliza git log • Abrir cuenta en GitHub • Editar perfil • Crear un nuevo repositorio • Agregar el repositorio remoto con el comando git remote add origin https://github.com/tpihugo/prueba.git • git remote –v para ver el repositorio agregado • git push --u origin master (push envia desde el repositorio remoto al local) • Poner los datos de acceso
  • 16. • Ir a GitHub y ver si están los archivos en los repositorios • Modificar el contenido, hacer git add, git commit y git push origin master • Git pull, cuando se trabaja con otras personas, se pueden jalar al código de uno con este comando • Hacer cambios desde la página de GitHub y ver cuantos commits se han hecho con git log • Para traernos el código es con • git pull origin master
  • 17. RAMAS Y FLUJO EN GIT Y GITHUB • https://guides.github.com/introduction/flow/ Rama Master – Línea principal Una rama es un clon del proyecto Pull Request es solicitar de la rama propia a la master
  • 18. CREAR UNA RAMA • Primero ver la rama actual git branch • Crear una nueva rama git branch primera_rama • Volver a ver la rama actual git branch • Si se desea eliminar sería con git branch –d primera_rama Es importante recordar siempre tener la versión más actualizada por lo que antes de generar una rama daremos git pull origin master
  • 19. GIT MERGE (FAST FORWARD) • Crear una rama y moverse a ella git checkout –b rama_nueva • Para mezclar código de la rama propia a la rama master que tiene cambios • Pasar a la rama master o a la que queremos afectar git merge nombre_rama_con_cambios • Cuando no hay cambios en la rama master, y es hace el merge se llama Fast Forward, actualizando el master con los cambios nuevos.
  • 20. GIT CHECKOUT • Permite volver a una versión anterior en un commit git checkout [cadena SHA] • Con eso vamos a ir a esa versión, sin perder los cambios futuros, head es un apuntador.
  • 21. MANEJO DE CONFLICTOS • Cuando nos desarrolladores modifican la misma línea del mismo archivo y el desarrollador debe de decidir cual se queda