GitHub para Periodistas – ¿Control de Versiones? – ¿Por que Git?



GitHub para Periodistas – ¿Control de Versiones? – ¿Por que Git?

3 8


github-para-periodistas-presentacion

Tutorial a presentar durante el taller de Linea de Comandos, Git y Github en las jornadas de periodismo y open data de okfn.es en Barcelona Abril, 2014.

On Github gabelula / github-para-periodistas-presentacion

GitHub para Periodistas

¿Control de Versiones?

Presentación por Gabriela "Gaba" Rodriguez / @gaba / Open News Fellow 2014

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 GitHub

Edició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.

Publicar tutoriales

Repositorio de manuales técnicos para periodistas. Como por ejemplo "Como construir tu primera aplicación de noticias"(en ingles) o "GitHub para periodistas".

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

Tutoriales y Referencias en línea

Libro Pro GIT. Ayuda de GitHub(en ingles). GitHub para iniciados(en ingles). GitHub para portfolios(en ingles). Generador de páginas webs y blogs con Jekyll Herramienta para escribir libros y articulos con GIT. Git-Scribe Aprende GIT en 15 minutos http://try.github.io (en ingles). Esta presentación en GitHub

¡Gracias!

Por @gaba