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

Taller GitHub

  • 1.
  • 2.
    Version Control Software Tambiénse 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 porLinus Torvalds Open-Source Cada usuario tiene una versión completa del repositorio.
  • 5.
    GitHub Github es unplataforma 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 esel 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 uncomando 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 permitecrear 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 sehace 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 elrepositorio 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 unacopia 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 requestes 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 guardaen el Master los cambios hechos en el branch X.
  • 14.
    Merge Conflicts Merge conflictsocurren 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 forGitHub - 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
  • 16.
  • 17.
  • 18.
  • 19.
    Creating a GroupAssignment
  • 20.
    Accepting an Assignment(Student Perspective)
  • 21.
    Accepting an Assignment(Student Perspective)
  • 23.
    “Code on theCloud” 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/
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
    Credits: ● Vivek Neel(definitions) ● Images from: guides.github.com
  • 29.
    Necesitas screenshots decada 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

  • #7 Source: Vivek Neel App: Lean GitHub Android Images: guides.github.com
  • #8 En otras palabras se puede hacer un “undo” de los cambios. En otras palabras el “commit” es la forma de almacenar los cambios.
  • #9 Esto es parecido a almacenar el mismo archivo bajo nombres distintos tal como hello-world.txt, hello-worl-2.txt
  • #13 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.
  • #14 Otro ejemplo de reducir lo escrito a lo principal. Tambien la figura necesitaba estar mas grande y preferible de mejor resolucion. Recuerda tu audiencia.
  • #16 Peer-Code-Review: refuerza a los estudiantes a dar y recibir feedback https://education.github.com/guide/assignments https://github.com/advanced-js/syllabus