Administrar las versiones del código fuente de tus programas puede facilitarles la vida no sólo a ti, sino a tu equipo, y a toda la gente que se involucre con él a lo largo del tiempo. Los versionadores son herramientas muy útiles hoy en día para proyectos de software de todos los tipos, en particular los proyectos de software libre se ven muy beneficiados con estas herramientas. Git es una de ellas, y el sitio Github una forma muy popular de usarla.
Recomendable descargarla por las animaciones de las diapositivas, que se aprecian mejor a verlas estáticas.
Codigo fuente del ejemplo: https://github.com/jstitch/helloworld
Introducción al desarrollo de software en comunidad con forja de software y gitDrPantera
Presentación "Introducción al desarrollo de software en comunidad con forja de software y git" impartida por Manuel Palomo y Pablo García en la Escuela Superior de Ingeniería de la Universidad de Cádiz a petición de la Game Development Association of the University of Cádiz
Administrar las versiones del código fuente de tus programas puede facilitarles la vida no sólo a ti, sino a tu equipo, y a toda la gente que se involucre con él a lo largo del tiempo. Los versionadores son herramientas muy útiles hoy en día para proyectos de software de todos los tipos, en particular los proyectos de software libre se ven muy beneficiados con estas herramientas. Git es una de ellas, y el sitio Github una forma muy popular de usarla.
Recomendable descargarla por las animaciones de las diapositivas, que se aprecian mejor a verlas estáticas.
Codigo fuente del ejemplo: https://github.com/jstitch/helloworld
Introducción al desarrollo de software en comunidad con forja de software y gitDrPantera
Presentación "Introducción al desarrollo de software en comunidad con forja de software y git" impartida por Manuel Palomo y Pablo García en la Escuela Superior de Ingeniería de la Universidad de Cádiz a petición de la Game Development Association of the University of Cádiz
Esta es una breve introducción a git y gitHub. En ella se tratan muchos temas de manera conceptual y no detallada, y se omiten algunos temas importantes; pero es más que suficiente para empezar a trabajar con git y a partir de aquí ampliar esta introducción.
La razón de utilizar eclipse para la presentación, es que sea más fácil de entender los conceptos de git, para dejar la base para después empezar a trabajar con git en consola.
Aquí está un manual un poco más detallado, que permitirá empezar a trabajar con git, utilizando GitHub como servidor git: http://es.slideshare.net/MiguelAscanioGmez/manual-y-git-github
Guía de Referencia de Git, Herramientas y Clientes Windows, ideal para programadores que quieran inicarse en el control de sus proyectos bajo control de versiones distribuidos
Recuperación de defaces y modificación de bases de datos con versionador git por @Alevsk
El objetivo es añadir una capa de seguridad extra a nuestros sitios o blog personales (y a proyectos mas grandes ¿Por que no?) para evitar y recuperarnos de los hackeos, con ayuda de algunos scripts en bash corriendo en background y Git podemos detectar cambios en los archivos de nuestro servidor y regresar al estado "trusted" que tiene el repositorio de Git, de igual manera revisando los checksums de las tablas en nuestra base de datos podemos saber si se ha insertado, eliminado o modificado algún registro o tabla (en el caso de sql injection y xss en la base de datos) y restaurarla rápidamente usando una copia. :)
Git: flujos de trabajo y herramientas para trabajo colaborativoAprende Git
Llevas unos meses dándole vueltas a subir ese parche que has hecho de jquery para corregir ese bug que te tenía loco. O crear ese proyecto en github para subir esa super tarea gulp que tanto os ha ayudado en el proyecto. Sí, te gustaría hacerlo pero no tienes ni idea de por dónde empezar: travis, pull-request, hooks, CI, gerrit, rebases, squashing, semantic versioning... ¿qué es todo eso y para qué sirve?. En esta charla hablaremos de qué herramientas aporta git y github para facilitar esta tarea, cómo podemos organizar nuestros repositorios y flujos de trabajo y os daremos las pautas para que podáis empezar a sacarle el máximo partido a los repositorios de código distribuido.
Estas diapositivas corresponden a la charla que se dio en madrid el 26/10/2015 en un meetup conjunto entre los grupos de HTML5 Spain y Spanish git Meetup.
En muchos tutoriales de git se ignoran cuestiones importantes. Por ejemplo, la configuración de claves e identidad del usuario son cosas cruciales para una buena experiencia con git.
En esta presentación se explica el proceso desde cero, orientado tanto a quienes quieren usarlo desde consola, como a desarrolladores que deseen emplearlo desde Eclipse.
Los ejemplos tratan de emular un proceso de desarrollo real basado en ramas, con conflictos entre diferentes desarrolladores.
Esta es una breve introducción a git y gitHub. En ella se tratan muchos temas de manera conceptual y no detallada, y se omiten algunos temas importantes; pero es más que suficiente para empezar a trabajar con git y a partir de aquí ampliar esta introducción.
La razón de utilizar eclipse para la presentación, es que sea más fácil de entender los conceptos de git, para dejar la base para después empezar a trabajar con git en consola.
Aquí está un manual un poco más detallado, que permitirá empezar a trabajar con git, utilizando GitHub como servidor git: http://es.slideshare.net/MiguelAscanioGmez/manual-y-git-github
Guía de Referencia de Git, Herramientas y Clientes Windows, ideal para programadores que quieran inicarse en el control de sus proyectos bajo control de versiones distribuidos
Recuperación de defaces y modificación de bases de datos con versionador git por @Alevsk
El objetivo es añadir una capa de seguridad extra a nuestros sitios o blog personales (y a proyectos mas grandes ¿Por que no?) para evitar y recuperarnos de los hackeos, con ayuda de algunos scripts en bash corriendo en background y Git podemos detectar cambios en los archivos de nuestro servidor y regresar al estado "trusted" que tiene el repositorio de Git, de igual manera revisando los checksums de las tablas en nuestra base de datos podemos saber si se ha insertado, eliminado o modificado algún registro o tabla (en el caso de sql injection y xss en la base de datos) y restaurarla rápidamente usando una copia. :)
Git: flujos de trabajo y herramientas para trabajo colaborativoAprende Git
Llevas unos meses dándole vueltas a subir ese parche que has hecho de jquery para corregir ese bug que te tenía loco. O crear ese proyecto en github para subir esa super tarea gulp que tanto os ha ayudado en el proyecto. Sí, te gustaría hacerlo pero no tienes ni idea de por dónde empezar: travis, pull-request, hooks, CI, gerrit, rebases, squashing, semantic versioning... ¿qué es todo eso y para qué sirve?. En esta charla hablaremos de qué herramientas aporta git y github para facilitar esta tarea, cómo podemos organizar nuestros repositorios y flujos de trabajo y os daremos las pautas para que podáis empezar a sacarle el máximo partido a los repositorios de código distribuido.
Estas diapositivas corresponden a la charla que se dio en madrid el 26/10/2015 en un meetup conjunto entre los grupos de HTML5 Spain y Spanish git Meetup.
En muchos tutoriales de git se ignoran cuestiones importantes. Por ejemplo, la configuración de claves e identidad del usuario son cosas cruciales para una buena experiencia con git.
En esta presentación se explica el proceso desde cero, orientado tanto a quienes quieren usarlo desde consola, como a desarrolladores que deseen emplearlo desde Eclipse.
Los ejemplos tratan de emular un proceso de desarrollo real basado en ramas, con conflictos entre diferentes desarrolladores.
Una introducción al uso de Sistemas de Control de Versiones (SCV) como parte de las "Buenas Prácticas de Programación".
Se discuten los conceptos básicos, flujos de trabajo usuales, y al final, se muestran ejemplos de uso de Bazaar como SCV.
Sistema que permite registrar los cambios en un archivo o conjunto de archivos con el tiempo para poder verificar versiones especificas mas adelante. Para diseñadores web o programadores en general es una de las herramientas mas considerables a utilizar.
Presentación introductoria sobre GIT como sistema distribuido de control de versiones. Introducción y vistazo rápido a comandos para iniciar con GIT en Ubuntu. Presentación a cargo de Simón Sánchez
En esta presentación damos un repaso de lo que son dependencias, el uso de dependency managers y la ventajas que nos ofrecen. Revisamos en qué consisten los submódulos GIT, Cocoapods y Carthage, señalando sus ventajas/desventajas y como podemos incorporarlos en nuestros proyectos.
La carrera de ingeniería de software de la Universidad Abierta para adultos (UAPA), Santiago, ha estado desarrollando el tema "Como ser productivos con
Software Libre".
La temática llevada a cabo se ha basado en una serie de charlas impartidas por personas relacionadas al software libre.
Participé con el tema Control de versiones con Subversion. Iniciamos con los conceptos generales de sistemas de control de versiones y luego con una explicación detallada del funcionamiento de Subversion.
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
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
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/
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
En otras palabras se puede hacer un “undo” de los cambios. En otras palabras el “commit” es la forma de almacenar los cambios.
Esto es parecido a almacenar el mismo archivo bajo nombres distintos tal como hello-world.txt, hello-worl-2.txt
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.
Otro ejemplo de reducir lo escrito a lo principal. Tambien la figura necesitaba estar mas grande y preferible de mejor resolucion. Recuerda tu audiencia.
Peer-Code-Review: refuerza a los estudiantes a dar y recibir feedback
https://education.github.com/guide/assignments
https://github.com/advanced-js/syllabus