VozData en La Nacion
Como usamos GIT para desarrollar VozData
Control de Versiones
¿Por qué nos sirve software que maneje versiones?
Un software que facilite el manejo del historial de revisiones en nuestro proyecto.
Sistema que registra los cambios realizados a un archivo a lo largo del tiempo. Te ayuda a recuperar archivos perdidos, a ir versiones anteriores del archivo, a encontrar en que momento se introdujo un bug en el software, a unir diferentes versiones de un documento de forma más naturalizada. GIT es un software de control de versiones que se realizo para guardar los cambios al corazón de Linux. Hay otros softwares que se usaban antes como SVN o CVS. Actualmente también se usan Bazaar o Mercurial.
¿Por que Git?
¿O por que los programadores lo usamos?
Guarda fotos, no diferencias
Git almacena la información como instantáneas del proyecto a lo largo del tiempo.
Ayuda a recuperar archivos perdidos. Cada foto de la situación de los archivos es el conjunto de archivos en un momento del tiempo. Esto hace que GIT sea un mini-sistema de archivos con muchas herramientas potentes construidas sobre él.Funciona localmente
No necesitamos un servidor para trabajar con GIT
La mayoría de las operaciones en Git sólo necesitan archivos y recursos locales para operar. Se puede ver la historia de cambios en GIT sin ir a ningún servidor remoto. Integridad
GIT esta observandolo todo
Es imposible cambiar un archivo sin que GIT lo sepa.GIT siempre añade información
Todo es recuperable. Queda huella de todo lo que haces en tu proyecto integrado a GIT
Cuando realizas acciones en Git, casi todas ellas sólo añaden información a la base de datos de Git. Es muy difícil conseguir que el sistema haga algo que no se pueda deshacer, o que de algún modo borre información.¿Por que GitHub?
Un poco de historia...
Red social para proyectos de desarrollo de software
Colaboración entre periodistas y programadores
Guarda datos, mapas y código propio
Github es una red social, donde tu puedes subir tu repositorio publico o privado (mediante planes de suscripción), puedes enviar modificaciones a repositorios de otra gente, reportar problemas o nuevos requerimientos a otros repositorios, crear organizaciones y mucho más.
Ir a la página de GitHub y explicar un poco la interfase (fork, pull requests, organizations, colaboradores).
¿Por que para un periodista?
colaboración en articulos, datos, proyectos
Para periodistas, Github es un lugar donde guardar datos, mapas y código que puedan generar para sus propios proyectos. También es un lugar donde se puede colaborar con otros periodistas y/o programadores.
Porque la programación está llegando a las redacciones.
Porque estan colaborando con programadores.
Porque estan usando internet, datos y la gran cantidad de información disponible en linea.
VozData en La Nacion
potencio la colaboración entre programadores
llevo control de los nuevos requerimientos y bugs
manejamos prioridad de lo que necesitabamos desarrollar
delegamos trabajo
Mostrar proyecto en GitHubEdición Colaborativa de un articulo
Wired publico un articulo sobre GitHub desde GitHub.
Links:
https://github.com/WiredEnterprise/Lord-of-the-Files
http://www.wired.com/2012/02/github-revisited/
Traducciones, pull requests sobre cambios.
Pueden "forkear" ese repositorio y hacerle cambios.Publicar tu página web
Hosteada en GitHub Pages
GitHub Pages es una facilidad de GitHub en donde cualquiera puede publicar páginas webs en GitHub. Soporta Jekyll que es un generador de páginas estaticas.Conceptos Básicos y Taller Técnico
Repositorio
Se le llama al directorio en donde hemos inicializado GIT para controlar las versiones de sus archivos.
Hay archivos que estan y hay otros que se pueden excluir de guardarlos en el repositorio. Esto se hace incluyendo el nombre del archivo a un archivo .gitignore
Poner ejemplos desde github.
Clonar
Copia un repositorio remoto en el disco local.
Fork
Es un termino usado en GitHub para crear una copia (en github) de un repositorio de otra persona u organización. Esto se hace para colaborar sobre un proyecto ya existente o usar ese repositorio como base de tu propio proyecto.
Push y Pull
Cuando se hacen cambios localmente y se quieren enviar a GitHub (u otro repositorio remoto) se hace "un push" para empujar esos cambios al remoto.
Cuando se quieren traer cambios desde un repositorio remoto se hace "un pull" para tomar los cambios hacia el local.
Branches
Branches (ramales de tren) permite hacer cambios y experimentar con tu repositorio sin afectar tu proyecto. Se pueden crear diferentes caminos que tu repositorio pueda tomar. Estos caminos se pueden unir en git luego si asi se quiere.
Pull Request
Se usa en GitHub para hacer pedidos a un proyecto forkeado de que una los cambios que hiciste en tu repositorio.
Explicar mostrando interface en github.Los tres estados de tu documento
Git tiene tres estados principales en los que se puede encontrar tu documento
confirmado (committed) - ya esta dentro de la version actual
preparado (staged) - estoy agregandolo a la siguiente version
modificado (modified) - lo estoy modificando
Confirmado significa que los datos están almacenados de manera segura en tu base de datos local.
Modificado significa que has modificado el archivo pero todavía no lo has confirmado a tu base de datos.
Preparado significa que has marcado un archivo modificado en su versión actual para que vaya en tu próxima confirmación.Las tres secciones principales para un proyecto en GIT
directorio de GIT
área de preparación
directorio de trabajo
Directorio de Git: es donde git almacena los metadatos y la base de datos de objectos del proyecto.
Directorio de trabajo: es la copia de una versión del proyecto. Es la versión que se puede modificar o usar.
Área de preparación: es un archivo que almacena información de lo que va a ir en la próxima confirmación.
Ejemplo con un periodista usando github para colaborar en varios articulos. La version anterior no tiene tildes y el conjunto de cambios que voy a aplicar son agregar tildes.
Flujo de trabajo
Se modifica archivos en tu directorio de trabajo.
Se añaden los archivos al área de preparación.
Se confirman los cambios, que lo que hace es tomar los archivos del área de preparación y los almacena de forma permanente en el directorio de Git.
Como instalar Git
En Mac instalador.
En Windows instalador.
En Linux mediante manejador de paquetes: apt-get install git.
La linea de comandos
(parentesis para poder entender el shell de git)
Software que tiene una pantalla donde se pueden tipear comandos para que la computadora realize diferentes tareas.
En Mac: application Terminal
En Windows: prompt ó cygwin (ó git shell)
En Linux: la consola
Algunos comandos
para tener mejor idea de como movernos en la linea de comandos
Ayuda
man comando
help comando
Listar Archivos
ls
dir
Ver ubicación
pwd
cd
Algunos comandos
Copiar archivos
cp archivo_a_copiar nuevo_archivo
copy archivo_a_copiar nuevo_archivo
Mover archivos de lugar
mv archivo_a_mover nuevo_lugar
move archivo_a_mover nuevo_lugar
Algunos comandos
Borrar archivos
rm archivo_a_borrar
remove archivo_a_borrar
Mirar el contenido de archivos de texto
less archivo_a_leer
type archivo_a_leer
En GIT
git clone
git init
git status
git diff
git log
git add archivo_a_agregar_al_repositorio_git
git commit
git push
git pull
git help
GIT sheet
Como configurar GitHub
Crear cuenta en GitHub.
Como crear un repositorio
Iniciando uno localmente
Ir al directorio del proyecto: cd directorio_path
Iniciar GIT:
git init
Agregar archivos:
git add archivos_a_agregar
Comitear:
git commit -m "Version inicial."
Agregandolo a github
Crear repositorio en github.
Agregar el remoto a el repositorio local: git remote add github_url_para_repo
Enviar cambios: git push origin master
Como clonar uno ya existente
git clone github_url_para_repo
Como usar GitHub para colaborar
"Fork" de los repositorios a colaborar.
Crear "issues" de nuevos requerimientos y bugs.
Crear "Pull Requests" con cambios que se pueden colaborar.
Hacer comentarios en "issues" y en documentos del repositorio a colaborar.
Se pueden crear organizaciones donde se tienen diferentes roles y todos en la organización tienen acceso a enviar cambios a los repositorios.
Cómo usar GitHub y GitHub Pages para publicar contenido
Para tú cuenta ú organización: username.github.io
Para tú repositorio: username.github.io/repositorio
Para tú cuenta
Crear repositorio 'username.github.io' donde username es el nombre de tu cuenta
Clonar localmente
Crear index. $ echo "Hola Mundo!" > index.html
Enviar cambios a github.
git add --all
git commit -m "Commit inicial"
git push
Ir a http://username.github.io
Para tú proyecto
Crear un repositorio para el proyecto.
Ir a settings/seccion github pages en https://github.com y clickear en 'Automatic Page Generator'
Agregar contenido
Elegir un theme y cliquear en el botón 'Publish'
Pronto en username.github.io/repositorio