SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
Mejora tu productividad con
Gustavo Delgado R.
Backend developer - Uprise
gustavo@uprise.cl
gustavonecore
● Trabajo colaborativo
● Git
● Tus primeros comandos en Git
● Usted no lo haga
● Preguntas
Trabajo colaborativo
Trabajo colaborativo
Coder 1
Trabajo colaborativo
Coder 1 Coder 2
Trabajo colaborativo
Coder 1 Coder 2
Trabajo colaborativo
Coder 1 Coder 2
Coder 2
Trabajo colaborativo
Coder 1 Coder 2
Coder 2
Trabajo colaborativo
Porqué es difícil?
Pasa hasta en las mejores familias
Pasa hasta en las mejores familias
Pasa hasta en las mejores familias
Pasa hasta en las mejores familias
Pasa hasta en las mejores familias
Git
Git (pronunciado "guit") es un software de control de versiones diseñado por Linus
Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de
versiones de aplicaciones cuando éstas tienen un gran número de archivos de
código fuente.
Git
"You know you're brilliant, but maybe you'd like to understand
what you did two weeks from now." - Linus Torvalds
Git - The goods
● Auditoría del código
● Control sobre cómo ha cambiado un repositorio
● Rollback de cambios simple
● Segmentación de diferentes versiones a.k.a branch.
● Seguridad: todas las estructuras internas de datos están firmadas con SHA1. No se puede
cambiar el código sin que nos enteremos
● Mejora nuestra capacidad de trabajar en equipo
● Merging y branching extremadamente eficientes
● Posibilidad de trabajo sin conexión
Git
Git
Git
Git - Svn/Mercurial/etc
Git - Svn/Mercurial/etc
Git - Svn/Mercurial/etc
Git - Branches
master
feature/1
bugfix/1
Git - Merge
feature/1
Git - Flow recipe
1. Developer tiene una tarea (issue)
2. Developer ejecuta clone del repositorio remoto en su máquina local.
3. Developer crea un nuevo branch local desde la rama que posee los últimos
cambios válidos (e.g: master, develop)
4. Developer realiza la tarea y está listo para subir su código
5. Developer agrega archivos y hace commit del cambio (repetir este paso
según sea necesario)
6. Developer sube su rama local al repositorio remoto (push)
7. Developer crea una solicitud de integración (pull request)
Git - Flow recipe
Git - Esencial
Git - Clonar repositorio
ssh$ git clone git@github.com:gustavonecore/sandbox.git
…..
Comprobando la conectividad… hecho.
git clone
Git - Listar ramas
ssh/sandbox$ git branch
develop
* master
git branch
Git - Cambiar de rama
ssh/sandbox$ git checkout develop
ssh/sandbox$ git branch
* develop
master
git checkout {branch}
Git - Crear rama a partir de otra como base
ssh/sandbox$ git checkout -b feature/1 develop
Switched to a new branch 'feature/1'
ssh/sandbox$ git branch
develop
* feature/1
master
git checkout -b {child} {parent}
Git - Revisar cambios
ssh/sandbox$ git status
modificado: README.md
ssh/sandbox$ git diff
--- a/README.md
+++ b/README.md
-# sandbox
+# Sandbox - Play repository
git status
git diff
Git - Agregar archivos modificados
ssh/sandbox$ git add README.md
ssh/sandbox$ git status
modificado: README.md
git add file
git add .
Git - Guardar cambios en la rama localmente
ssh/sandbox$ git commit -m “Improve description of readme”
[feature/1 9caf4a5] Improve description of readme
1 file changed, 1 insertion(+), 2 deletions(-)
git commit -m “{message}”
Git - Sincronizar rama local con rama remota
ssh/sandbox$ git pull origin develop
* branch develop -> FETCH_HEAD
Already up-to-date.
git fetch
git merge origin {branch}
Git - Subir cambios al repositorio remoto
ssh/sandbox$ git push origin feature/1
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 331 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To git@github.com:gustavonecore/sandbox.git
* [new branch] feature/1 -> feature/1
git push origin {branch}
Git - Ver historial
ssh/sandbox$ git log
commit 9caf4a571c240aa206c389dab717a10fa174bb19
Author: Gustavo Delgado <gustavod@digintent.com>
Date: Wed Mar 8 23:50:31 2017 -0300
Improve description of readme
commit 14cf23407d4151d2022f5317261048522376f7bb
Author: gustavonecore <gustavo.uach@gmail.com>
Date: Wed Jan 27 16:56:57 2016 -0300
Add readme
git log
Git Platforms
Git - Let’s do it
Usted no lo haga
●
Usted no lo haga
● Subir cambios directos a master (siempre ocurre :@ )
● Mezclar cambios de diferentes branches
● Intentar eliminar un commit que ya está en el repositorio remoto
● Usar git add . sin revisar qué archivos fueron modificados
● No subir commits periódicamente
● No mantener actualizado tu branch con el branch desde donde salió.
● Crear un PR con conflictos y errores
● Usar mensajes no descriptivos en los commits
Git - Productividad
¿Preguntas?

Mais conteúdo relacionado

Mais procurados

Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con gitJuan Vladimir
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en españolRamón Glez
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantesnscoder_mad
 
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 GithubCarlos Huamaní
 
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
 
Repositorio concesionariocochesfloresgomezrobertocarlos
Repositorio concesionariocochesfloresgomezrobertocarlosRepositorio concesionariocochesfloresgomezrobertocarlos
Repositorio concesionariocochesfloresgomezrobertocarlosRoberto Carlos Flores Gomez
 
Git: Aprovecha las ventajas del control de versiones distribuido
Git: Aprovecha las ventajas del control de versiones distribuidoGit: Aprovecha las ventajas del control de versiones distribuido
Git: Aprovecha las ventajas del control de versiones distribuidoIñaki Arenaza
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con GITJulio Silva
 
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
 
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
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoAprende Git
 

Mais procurados (20)

Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con 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 para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
 
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
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
The Gift of Git [Español: La Palabra de Git]
The Gift of Git [Español: La Palabra de Git]The Gift of Git [Español: La Palabra de Git]
The Gift of Git [Español: La Palabra de Git]
 
Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
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?
 
Repositorio concesionariocochesfloresgomezrobertocarlos
Repositorio concesionariocochesfloresgomezrobertocarlosRepositorio concesionariocochesfloresgomezrobertocarlos
Repositorio concesionariocochesfloresgomezrobertocarlos
 
Git: Aprovecha las ventajas del control de versiones distribuido
Git: Aprovecha las ventajas del control de versiones distribuidoGit: Aprovecha las ventajas del control de versiones distribuido
Git: Aprovecha las ventajas del control de versiones distribuido
 
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
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con GIT
 
Subir versiones a repositorio GitHub
Subir versiones a repositorio GitHubSubir versiones a repositorio GitHub
Subir versiones a repositorio GitHub
 
Git - Gitlab
Git - GitlabGit - Gitlab
Git - Gitlab
 
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
 
Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con Git
 
02 versionamientoy usogit_i_parte
02 versionamientoy usogit_i_parte02 versionamientoy usogit_i_parte
02 versionamientoy usogit_i_parte
 
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
 
Introducción a GIT
Introducción a GITIntroducción a GIT
Introducción a GIT
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativo
 

Semelhante a Mejora productividad con Git

GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxGuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxfuenzalidarodrigo
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a gitKeopx
 
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
 
Git & GitHub Part II
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part IIMax Rodriguez
 
Git + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIGit + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIquaip
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GITKeopx
 
Taller Git en la URJC
Taller Git en la URJC Taller Git en la URJC
Taller Git en la URJC sidelab
 
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
 
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
 
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
 
Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de gitAntonio Ognio
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque prácticoPatxi Gortázar
 
Git + Github - Sysmana 2014
Git + Github - Sysmana 2014Git + Github - Sysmana 2014
Git + Github - Sysmana 2014quaip
 

Semelhante a Mejora productividad con Git (20)

GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxGuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
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
 
Git & GitHub Part II
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part II
 
Intro a GIT
Intro a GITIntro a GIT
Intro a GIT
 
Git + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIGit + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XII
 
Git
GitGit
Git
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
 
Taller Git en la URJC
Taller Git en la URJC Taller Git en la URJC
Taller Git en la URJC
 
Git y github básico
Git y github básicoGit y github básico
Git y github básico
 
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
 
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
 
Git 101+
Git 101+Git 101+
Git 101+
 
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
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
 
Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de git
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
Git + Github - Sysmana 2014
Git + Github - Sysmana 2014Git + Github - Sysmana 2014
Git + Github - Sysmana 2014
 

Mejora productividad con Git

  • 1. Mejora tu productividad con Gustavo Delgado R. Backend developer - Uprise gustavo@uprise.cl gustavonecore
  • 2. ● Trabajo colaborativo ● Git ● Tus primeros comandos en Git ● Usted no lo haga ● Preguntas
  • 10. Pasa hasta en las mejores familias
  • 11. Pasa hasta en las mejores familias
  • 12. Pasa hasta en las mejores familias
  • 13. Pasa hasta en las mejores familias
  • 14. Pasa hasta en las mejores familias
  • 15.
  • 16.
  • 17. Git Git (pronunciado "guit") es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente.
  • 18. Git "You know you're brilliant, but maybe you'd like to understand what you did two weeks from now." - Linus Torvalds
  • 19. Git - The goods ● Auditoría del código ● Control sobre cómo ha cambiado un repositorio ● Rollback de cambios simple ● Segmentación de diferentes versiones a.k.a branch. ● Seguridad: todas las estructuras internas de datos están firmadas con SHA1. No se puede cambiar el código sin que nos enteremos ● Mejora nuestra capacidad de trabajar en equipo ● Merging y branching extremadamente eficientes ● Posibilidad de trabajo sin conexión
  • 20. Git
  • 21. Git
  • 22. Git
  • 28. Git - Flow recipe 1. Developer tiene una tarea (issue) 2. Developer ejecuta clone del repositorio remoto en su máquina local. 3. Developer crea un nuevo branch local desde la rama que posee los últimos cambios válidos (e.g: master, develop) 4. Developer realiza la tarea y está listo para subir su código 5. Developer agrega archivos y hace commit del cambio (repetir este paso según sea necesario) 6. Developer sube su rama local al repositorio remoto (push) 7. Developer crea una solicitud de integración (pull request)
  • 29. Git - Flow recipe
  • 31. Git - Clonar repositorio ssh$ git clone git@github.com:gustavonecore/sandbox.git ….. Comprobando la conectividad… hecho. git clone
  • 32. Git - Listar ramas ssh/sandbox$ git branch develop * master git branch
  • 33. Git - Cambiar de rama ssh/sandbox$ git checkout develop ssh/sandbox$ git branch * develop master git checkout {branch}
  • 34. Git - Crear rama a partir de otra como base ssh/sandbox$ git checkout -b feature/1 develop Switched to a new branch 'feature/1' ssh/sandbox$ git branch develop * feature/1 master git checkout -b {child} {parent}
  • 35. Git - Revisar cambios ssh/sandbox$ git status modificado: README.md ssh/sandbox$ git diff --- a/README.md +++ b/README.md -# sandbox +# Sandbox - Play repository git status git diff
  • 36. Git - Agregar archivos modificados ssh/sandbox$ git add README.md ssh/sandbox$ git status modificado: README.md git add file git add .
  • 37. Git - Guardar cambios en la rama localmente ssh/sandbox$ git commit -m “Improve description of readme” [feature/1 9caf4a5] Improve description of readme 1 file changed, 1 insertion(+), 2 deletions(-) git commit -m “{message}”
  • 38. Git - Sincronizar rama local con rama remota ssh/sandbox$ git pull origin develop * branch develop -> FETCH_HEAD Already up-to-date. git fetch git merge origin {branch}
  • 39. Git - Subir cambios al repositorio remoto ssh/sandbox$ git push origin feature/1 Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 331 bytes | 0 bytes/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), completed with 2 local objects. To git@github.com:gustavonecore/sandbox.git * [new branch] feature/1 -> feature/1 git push origin {branch}
  • 40. Git - Ver historial ssh/sandbox$ git log commit 9caf4a571c240aa206c389dab717a10fa174bb19 Author: Gustavo Delgado <gustavod@digintent.com> Date: Wed Mar 8 23:50:31 2017 -0300 Improve description of readme commit 14cf23407d4151d2022f5317261048522376f7bb Author: gustavonecore <gustavo.uach@gmail.com> Date: Wed Jan 27 16:56:57 2016 -0300 Add readme git log
  • 42. Git - Let’s do it
  • 43. Usted no lo haga ●
  • 44. Usted no lo haga ● Subir cambios directos a master (siempre ocurre :@ ) ● Mezclar cambios de diferentes branches ● Intentar eliminar un commit que ya está en el repositorio remoto ● Usar git add . sin revisar qué archivos fueron modificados ● No subir commits periódicamente ● No mantener actualizado tu branch con el branch desde donde salió. ● Crear un PR con conflictos y errores ● Usar mensajes no descriptivos en los commits