SlideShare una empresa de Scribd logo
Version Control Systems:
Github
Roberto Rosa
Version Control Software
También se refieren a ellos como “revision control” o
“software control”
Son una forma esencial de distribuir y colaborar código
reciente.
Se utiliza para seguir los cambios y comparar distintas
versiones.
Hay varios tipos de VCS, estos ofrecen distintos features .
Version Control Software (VCS)
Esencial para distribuir y colaborar con código
Mantiene control de cambios en código
Permite comparar versiones de código
Ejemplos de VCS
https://en.wikipedia.org/wiki/List_of_version_control_software
VCS: Git
Diseñado por Linus Torvalds
Open-Source
Cada usuario tiene una versión completa del repositorio.
GitHub
Github es un plataforma web que ofrece hosting de
repositorios git. Además de extiende a git añadiendo otros
features.
Es utilizado por muchos de los proyectos más grandes de open-source.
Frameworks populares como Bootstrap, jQuery, .NET (nuevo) entre otros
Plataformas como Wordpress
Organizaciones como Google, Facebook, Mozilla, Adobe.
Repo’s como el Kernel de Linux entre otros.
Repository
Un repositorio es el lugar
donde están todos los archivos
respectivos a un proyecto.
Hay dos formas de crear un
repositorio:
Localmente, desde el
client
Desde el website de
GitHub
Commit es un comando Git que al utilizarlo se hace un “snapshot” de tu repositorio. De igual forma es un “checkpoint” que se puede
utilizar para evaluar o restaurar el proyecto al estado anterior.
Branch
Un branch permite crear y trabajar en distintas versiones de un repo desde un
punto de partida.
Los branches permiten a múltiples desarrolladores trabajar en el mismo
proyecto sin crear conflictos y confusión.
Por default cada repositorio tiene un branch llamado master.
Branch Merge
Cuando se hace un merge los cambios que se hicieron el el branch X se
guardan en el master (de tener un branch llamado X y un merge de Z a
master)
Remote
Remote es el repositorio que está en el servidor de GitHub. Cuando uno crea un
repositorio localmente hay que publicarlo para que otros puedan colaborar. Al
repo que está en el servidor de github se le refiere como origin.
Para interactuar y actualizar el origin se utilizan dos comandos:
push (envía y actualiza esa versión de branch del origin)
fetch (trae los cambios a su repo local)
En el client lo verán como sync, el cual simultáneamente hace ambos.
Fork
Fork crea una copia del repositorio deseado para hacer cambios. Por
tanto se pueden hacer cambios sin afectar el proyecto original. Luego de
esto para poder trabajar, se tiene que clonar en el ambiente de
desarrollo.
Un pull request es una
“propuesta” para que se revise
los cambios y se traigan al
branch del repositorio.
● El pull request es clave
para la colaboración entre
desarrolladores.
● El pull request por
naturaleza te permite ver
las diferencias entre esos
dos branches.
Pull Request
Branch Merge
Merge guarda en el Master los cambios hechos en el branch X.
Merge Conflicts
Merge conflicts ocurren cuando se va a hacer un merge de un branch a
otro. Si el mismo bloque de código está editado de manera diferente entre
los branch.
Una vez se resuelva el conflicto se procede a hacer un commit.
Usos Académicos
Classroom for GitHub - Es una herramienta de enseñanza, en la cual se
pueden distribuir documentos, repositorios y proyectos, recoger
asignaciones y calificarlas. De igual manera ofrece un medio para el “peer
code review”
Automated Testing: Se puede utilizar para verificar las soluciones de los
estudiantes. Tales como:
Cppcheck
HTML Validation
RIPS for PHP
JSHINT
GitHub Classroom
Creating an Assignment
Creating an Assignment
Creating a Group Assignment
Accepting an Assignment (Student Perspective)
Accepting an Assignment (Student Perspective)
“Code on the Cloud”
Una ventaja de utilizar una plataforma como GitHub ó Git en general es que
se pueden conectar los repositorios con ambientes de desarrollo (IDE) en
la nube. Tales como:
www.codenvy.com
www.koding.com
https://c9.io/
DevOps : Ofrece una introducción a esta práctica. La utilización de VCS es
central para el ciclo de desarrollo y prueba del código.
http://agilemanifesto.org/iso/en/principles.html
http://theagileadmin.com/what-is-devops/
Repository
Palabras para recordar...
COMMIT
Palabras para recordar...
BRANCH
Palabras para recordar…
FORK
Credits:
● Vivek Neel (definitions)
● Images from: guides.github.com
Necesitas screenshots de cada cosa de la cual hables. O mejor aún, puedes dar la presentation en pdf
split-screen con github, y das demo con cada explicación.
Hay que hablar mucho mas de GitHub Classroom

Más contenido relacionado

La actualidad más candente

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
Miguel Ascanio Gómez
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
Keopx
 
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
guest638090
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
Manuel Ceron
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
Juan Victor Minaya León
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
Keopx
 
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
 
Introducción a GIT
Introducción a GITIntroducción a GIT
Introducción a GIT
Jose Emilio Labra Gayo
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
Juan Vladimir
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con GIT
Julio Silva
 
Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de git
Antonio Ognio
 
Recuperacion de defaces con versionador Git por Alevsk
Recuperacion de defaces con versionador Git por Alevsk Recuperacion de defaces con versionador Git por Alevsk
Recuperacion de defaces con versionador Git por Alevsk
Websec México, S.C.
 
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
Aprende Git
 
Fundamentos de GIt y Github
Fundamentos de GIt y GithubFundamentos de GIt y Github
Fundamentos de GIt y Github
Javier Latorre López-Villalta
 
Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)
Iñaki Arenaza
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
Patxi Gortázar
 
Taller breve de introduccion a Git
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a Git
Mario IC
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de git
Keopx
 

La actualidad más candente (20)

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
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
 
Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
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
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en español
 
Introducción a GIT
Introducción a GITIntroducción a GIT
Introducción a GIT
 
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
 
Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de git
 
Recuperacion de defaces con versionador Git por Alevsk
Recuperacion de defaces con versionador Git por Alevsk Recuperacion de defaces con versionador Git por Alevsk
Recuperacion de defaces con versionador Git por Alevsk
 
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
 
Fundamentos de GIt y Github
Fundamentos de GIt y GithubFundamentos de GIt y Github
Fundamentos de GIt y Github
 
Tallerintroducciongit
TallerintroducciongitTallerintroducciongit
Tallerintroducciongit
 
Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
Taller breve de introduccion a Git
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a Git
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de git
 

Similar a Taller GitHub

Control de versiones con git
Control de versiones con gitControl de versiones con git
Control de versiones con git
Eudris Cabrera
 
[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones[ES] Sistemas de control de versiones
[ES] Sistemas de control de versionesEudris Cabrera
 
Sistemas para el Control de Versiones de Código
Sistemas para el Control de Versiones de CódigoSistemas para el Control de Versiones de Código
Sistemas para el Control de Versiones de Código
Jesus Castagnetto
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
José Moreno
 
Forjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenForjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenIñaki Arenaza
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
Hugo Gilmar Erazo
 
Git & GitHub Part I
Git & GitHub Part IGit & GitHub Part I
Git & GitHub Part I
Max Rodriguez
 
U1 Control de versiones.pdf
U1 Control de versiones.pdfU1 Control de versiones.pdf
U1 Control de versiones.pdf
Eric Quiñones
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
InterGraphicDESIGNS
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
Daniel Cruz
 
Guia01 control versiones
Guia01 control versionesGuia01 control versiones
Guia01 control versiones
GuadalupeLopezLeyva
 
Forjas y repositorios de código en la nube. Euskal Encounter 2015
Forjas y repositorios de código en la nube. Euskal Encounter 2015Forjas y repositorios de código en la nube. Euskal Encounter 2015
Forjas y repositorios de código en la nube. Euskal Encounter 2015
Iñaki Arenaza
 
Dependency Managers
Dependency ManagersDependency Managers
Dependency Managers
NSCoder Mexico
 
Tema 1 Control de Versiones
Tema 1 Control de VersionesTema 1 Control de Versiones
Tema 1 Control de Versiones
Carlos A. Iglesias
 
Induccion0_GitLab.pptx
Induccion0_GitLab.pptxInduccion0_GitLab.pptx
Induccion0_GitLab.pptx
ssuser3ff40a
 
Dependency Managers iOS
Dependency Managers iOSDependency Managers iOS
Dependency Managers iOS
Angel Jesse Morales Karam
 
EcoSistema DevOps DevSecOps un pequeño brief
EcoSistema DevOps DevSecOps un pequeño briefEcoSistema DevOps DevSecOps un pequeño brief
EcoSistema DevOps DevSecOps un pequeño brief
Carlos Aliaga
 
S14-DAW-2022S1.pptx
S14-DAW-2022S1.pptxS14-DAW-2022S1.pptx
S14-DAW-2022S1.pptx
Luis Fernando Aguas Bucheli
 
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxGuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
fuenzalidarodrigo
 
[ES] Control de versiones con subversion
[ES] Control de versiones con  subversion[ES] Control de versiones con  subversion
[ES] Control de versiones con subversion
Eudris Cabrera
 

Similar a Taller GitHub (20)

Control de versiones con git
Control de versiones con gitControl de versiones con git
Control de versiones con git
 
[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones
 
Sistemas para el Control de Versiones de Código
Sistemas para el Control de Versiones de CódigoSistemas para el Control de Versiones de Código
Sistemas para el Control de Versiones de Código
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
Forjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenForjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirven
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
 
Git & GitHub Part I
Git & GitHub Part IGit & GitHub Part I
Git & GitHub Part I
 
U1 Control de versiones.pdf
U1 Control de versiones.pdfU1 Control de versiones.pdf
U1 Control de versiones.pdf
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
 
Guia01 control versiones
Guia01 control versionesGuia01 control versiones
Guia01 control versiones
 
Forjas y repositorios de código en la nube. Euskal Encounter 2015
Forjas y repositorios de código en la nube. Euskal Encounter 2015Forjas y repositorios de código en la nube. Euskal Encounter 2015
Forjas y repositorios de código en la nube. Euskal Encounter 2015
 
Dependency Managers
Dependency ManagersDependency Managers
Dependency Managers
 
Tema 1 Control de Versiones
Tema 1 Control de VersionesTema 1 Control de Versiones
Tema 1 Control de Versiones
 
Induccion0_GitLab.pptx
Induccion0_GitLab.pptxInduccion0_GitLab.pptx
Induccion0_GitLab.pptx
 
Dependency Managers iOS
Dependency Managers iOSDependency Managers iOS
Dependency Managers iOS
 
EcoSistema DevOps DevSecOps un pequeño brief
EcoSistema DevOps DevSecOps un pequeño briefEcoSistema DevOps DevSecOps un pequeño brief
EcoSistema DevOps DevSecOps un pequeño brief
 
S14-DAW-2022S1.pptx
S14-DAW-2022S1.pptxS14-DAW-2022S1.pptx
S14-DAW-2022S1.pptx
 
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxGuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
 
[ES] Control de versiones con subversion
[ES] Control de versiones con  subversion[ES] Control de versiones con  subversion
[ES] Control de versiones con subversion
 

Taller GitHub

  • 2. Version Control Software También se refieren a ellos como “revision control” o “software control” Son una forma esencial de distribuir y colaborar código reciente. Se utiliza para seguir los cambios y comparar distintas versiones. Hay varios tipos de VCS, estos ofrecen distintos features .
  • 3. Version Control Software (VCS) Esencial para distribuir y colaborar con código Mantiene control de cambios en código Permite comparar versiones de código Ejemplos de VCS https://en.wikipedia.org/wiki/List_of_version_control_software
  • 4. VCS: Git Diseñado por Linus Torvalds Open-Source Cada usuario tiene una versión completa del repositorio.
  • 5. GitHub Github es un plataforma web que ofrece hosting de repositorios git. Además de extiende a git añadiendo otros features. Es utilizado por muchos de los proyectos más grandes de open-source. Frameworks populares como Bootstrap, jQuery, .NET (nuevo) entre otros Plataformas como Wordpress Organizaciones como Google, Facebook, Mozilla, Adobe. Repo’s como el Kernel de Linux entre otros.
  • 6. Repository Un repositorio es el lugar donde están todos los archivos respectivos a un proyecto. Hay dos formas de crear un repositorio: Localmente, desde el client Desde el website de GitHub
  • 7. Commit es un comando Git que al utilizarlo se hace un “snapshot” de tu repositorio. De igual forma es un “checkpoint” que se puede utilizar para evaluar o restaurar el proyecto al estado anterior.
  • 8. Branch Un branch permite crear y trabajar en distintas versiones de un repo desde un punto de partida. Los branches permiten a múltiples desarrolladores trabajar en el mismo proyecto sin crear conflictos y confusión. Por default cada repositorio tiene un branch llamado master.
  • 9. Branch Merge Cuando se hace un merge los cambios que se hicieron el el branch X se guardan en el master (de tener un branch llamado X y un merge de Z a master)
  • 10. Remote Remote es el repositorio que está en el servidor de GitHub. Cuando uno crea un repositorio localmente hay que publicarlo para que otros puedan colaborar. Al repo que está en el servidor de github se le refiere como origin. Para interactuar y actualizar el origin se utilizan dos comandos: push (envía y actualiza esa versión de branch del origin) fetch (trae los cambios a su repo local) En el client lo verán como sync, el cual simultáneamente hace ambos.
  • 11. Fork Fork crea una copia del repositorio deseado para hacer cambios. Por tanto se pueden hacer cambios sin afectar el proyecto original. Luego de esto para poder trabajar, se tiene que clonar en el ambiente de desarrollo.
  • 12. Un pull request es una “propuesta” para que se revise los cambios y se traigan al branch del repositorio. ● El pull request es clave para la colaboración entre desarrolladores. ● El pull request por naturaleza te permite ver las diferencias entre esos dos branches. Pull Request
  • 13. Branch Merge Merge guarda en el Master los cambios hechos en el branch X.
  • 14. Merge Conflicts Merge conflicts ocurren cuando se va a hacer un merge de un branch a otro. Si el mismo bloque de código está editado de manera diferente entre los branch. Una vez se resuelva el conflicto se procede a hacer un commit.
  • 15. Usos Académicos Classroom for GitHub - Es una herramienta de enseñanza, en la cual se pueden distribuir documentos, repositorios y proyectos, recoger asignaciones y calificarlas. De igual manera ofrece un medio para el “peer code review” Automated Testing: Se puede utilizar para verificar las soluciones de los estudiantes. Tales como: Cppcheck HTML Validation RIPS for PHP JSHINT
  • 19. Creating a Group Assignment
  • 20. Accepting an Assignment (Student Perspective)
  • 21. Accepting an Assignment (Student Perspective)
  • 22.
  • 23. “Code on the Cloud” Una ventaja de utilizar una plataforma como GitHub ó Git en general es que se pueden conectar los repositorios con ambientes de desarrollo (IDE) en la nube. Tales como: www.codenvy.com www.koding.com https://c9.io/ DevOps : Ofrece una introducción a esta práctica. La utilización de VCS es central para el ciclo de desarrollo y prueba del código. http://agilemanifesto.org/iso/en/principles.html http://theagileadmin.com/what-is-devops/
  • 27. FORK
  • 28. Credits: ● Vivek Neel (definitions) ● Images from: guides.github.com
  • 29. Necesitas screenshots de cada cosa de la cual hables. O mejor aún, puedes dar la presentation en pdf split-screen con github, y das demo con cada explicación. Hay que hablar mucho mas de GitHub Classroom

Notas del editor

  1. Source: Vivek Neel App: Lean GitHub Android Images: guides.github.com
  2. En otras palabras se puede hacer un “undo” de los cambios. En otras palabras el “commit” es la forma de almacenar los cambios.
  3. Esto es parecido a almacenar el mismo archivo bajo nombres distintos tal como hello-world.txt, hello-worl-2.txt
  4. Clave para colaboración ya que permite revisar el código y probarlo antes de unirlo a un branch del proyecto. En la mayoría de los casos para repositorios públicos se necesita hacer un pull request para contribuir a estos. El maintainer del proyecto revisa los cambios y decide qué hacer con el pull request.
  5. Otro ejemplo de reducir lo escrito a lo principal. Tambien la figura necesitaba estar mas grande y preferible de mejor resolucion. Recuerda tu audiencia.
  6. Peer-Code-Review: refuerza a los estudiantes a dar y recibir feedback https://education.github.com/guide/assignments https://github.com/advanced-js/syllabus