SlideShare una empresa de Scribd logo
+
Betabeers Córdoba XII

@sergiogomez
Sergio Gómez - @sergiogomez
Una vida dedicada a la sonrisa, a mis niños, y al rock and roll

● Socio fundador de QuaiP.com
● Web Developer Ruby on Rails / HTML / CSS / jQuery
● SysOp LAMP, git…
● Coworker feliz en coSfera
Betabeers Córdoba XII

@sergiogomez
● Desarrollo e infraestructuras avanzadas de VoIP
● Servidores de streaming de radio y TV
● Cloud, hosting avanzado, VPS y servidores dedicados

Betabeers Córdoba XII

@sergiogomez
git
+ Sistema de control de versiones distribuido, open source y gratuito
+ Creado por Linus Torvalds, para su uso en el desarrollo del kernel de Linux
+ Rápido, sólido, estable y fácilmente conectable
+ Desde cero, o a partir de Subversion y CVS

Betabeers Córdoba XII

@sergiogomez
git + distribuido

Imagen: http://nvie.com/posts/a-successful-git-branching-model/

Betabeers Córdoba XII

@sergiogomez
git + licencia libre
+ GNU General Public License version 2
+ Algunas partes usan otras licencias, pero siempre compatibles con GPLv2

Betabeers Córdoba XII

@sergiogomez
git + instalación
+ Disponible en Linux, Mac OS X, Windows y Solaris
Debian/Ubuntu
$ apt-get install git
Fedora
$ yum install git
Gentoo
$ emerge --ask --verbose dev-vcs/git

Betabeers Córdoba XII

@sergiogomez
git + gitk (linux)

Betabeers Córdoba XII

@sergiogomez
git + gitx (mac)

Betabeers Córdoba XII

@sergiogomez
git + gitx-dev (mac)

Betabeers Córdoba XII

@sergiogomez
git + github for mac

Betabeers Córdoba XII

@sergiogomez
git + github for windows

Betabeers Córdoba XII

@sergiogomez
git + configuración
+ Necesario para identificar el trabajo que se realiza
$ git config --global user.name "Sergio Gómez"
$ git config --global user.email "sergio@quaip.com"

+ Puede ser distinto en cada repositorio
$ cd repositorio
$ git config user.name "Sergio Gómez"
$ git config user.email "sergiogomez@gmail.com"

Betabeers Córdoba XII

@sergiogomez
git + creación de un repositorio local
+ Puede crearse un repositorio desde cero
$ mkdir some-repository
$ cd some-repository
$ git init

+ O crearse desde una carpeta con código
$ cd project
$ git init

Betabeers Córdoba XII

@sergiogomez
git + clonar un repositorio remoto
+ Crea una copia local de un repositorio remoto para comenzar a trabajar
directamente con él
$ git clone https://github.com/drone/drone.git
Cloning into 'drone'...
remote: Counting objects: 590, done.
remote: Compressing objects: 100% (339/339), done.
remote: Total 590 (delta 265), reused 519 (delta 227)
Receiving objects: 100% (590/590), 176.08 KiB | 205.00 KiB/s, done.
Resolving deltas: 100% (265/265), done.
Checking connectivity... done
$ cd drone/
$ ls
AUTHORS
LICENSE
Makefile README.md
bin
cmd
deb

Betabeers Córdoba XII

@sergiogomez
git + snapshotting
+ En git, básicamente lo que hacemos es componer y guardar snapshots
(instantáneas) de un proyecto, trabajar con ellas y compararlas

Imagen: http://slid.es/gruizdevilla/introduccion-a-git

Betabeers Córdoba XII

@sergiogomez
git + staging area
+ Git usa un proceso de dos pasos para subir tus snapshots al repositorio:
Paso 1
Paso 2

añadir ficheros y cambios al staging area
git add
git commit confirmar ficheros y cambios al repositorio local

Imagen: http://graph1zzlle.github.io/posts/git-basics-revisited-part2/

Betabeers Córdoba XII

@sergiogomez
git + add
+ Es el comando con el que se añaden los cambios al staging area
$ git add README hello.rb

+ Se pueden subir todos los ficheros directamente
$ git add .

Betabeers Córdoba XII

@sergiogomez
git + commit
+ Es el comando con el que se suben los cambios del staging al repositorio
$ git commit

+ Es necesario incluir un mensaje que describa lo que se ha hecho
$ git commit -m 'Cambios realizados'

+ Añadir automáticamente todos los cambios en los ficheros del staging area
$ git commit -a -m 'Cambios realizados'

Betabeers Córdoba XII

@sergiogomez
git + ¿se te ha escapado un commit?

Imagen: http://www.librodearena.com/post/rompetejas/la-petra-nada-una-mas-que-cagar-juntitos/4384204/311860

Betabeers Córdoba XII

@sergiogomez
git + amend
+ Permite corregir (enmendar) el último commit
$ git commit --amend

Betabeers Córdoba XII

@sergiogomez
git + diff
+ Es la forma (que usan los buenos) de ver el código que ha cambiado desde
el último commit y que no ha sido subido al índice:
$ diff --git a/hello.rb b/hello.rb
index d62ac43..8d15d50 100644
--- a/hello.rb
+++ b/hello.rb
@@ -1,7 +1,7 @@
class HelloWorld

+

def self.hello
puts "hello world"
puts "hola mundo"
end

end

Betabeers Córdoba XII

@sergiogomez
git + diff

Betabeers Córdoba XII

@sergiogomez
git + status
+ En todo momento podemos ver la situación de nuestra copia local:
+ Ficheros cambiados y añadidos al índice
listos para el siguiente commit
+ Ficheros cambiados pero que no están
añadidos al índice
+ Ficheros sin registrar por el índice
+ Rama en la que estás trabajando
+ Número de commits que aún no están
en el repositorio remoto

Betabeers Córdoba XII

$
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#

git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file:
new file:

README
hello.rb

Changed but
(use "git
(use "git
modified:

not updated:
add <file>..." to update what will be...
checkout -- <file>..." to discard chan... #
README

@sergiogomez
git + deshacer
+ Al contrario que en la vida real, en git es realmente sencillo volver hacia
atrás, deshacer acciones, e incluso reescribir la historia:
Quitar un fichero del índice que ha cambiado
$ git reset HEAD -- path/to/file

Quitar un fichero nuevo del índice
$ git rm --cached path/to/file

Quieres deshacer los cambios de un fichero que no está en el índice
$ git checkout -- path/to/file

Has hecho un commit y lo quieres deshacer
$ git reset --soft HEAD^

Betabeers Córdoba XII

@sergiogomez
git + mover y borrar ficheros
+ Mover un fichero
$ git mv source target

+ Borrar un fichero
$ git rm -- path/to/file

+ Borrar una carpeta
$ git rn .r .. path/to/dir

Betabeers Córdoba XII

@sergiogomez
git + stash
+ Guardar los cambios sin subir al índice a una pila de cambios (stack)
$ git stash

+ Retomar los cambios y quitarlos de la pila
$ git stash pop

=

$ git stash apply; git stash drop

+ Ver pila de cambios
$ git stash list

+ Aplicar un cambio concreto de la pila
$ git stash apply stash@{1}

Betabeers Córdoba XII

@sergiogomez
git + branches
+ Crear rama
$ git branch nombre-de-rama

+ Cambiar a una rama
$ git checkout nombre-de-rama

+ Ver todas las ramas
$ git branch

+ Crear y cambiar a una rama (en un solo paso)
$ git checkout -b nombre-de-rama

Betabeers Córdoba XII

@sergiogomez
git + branches
+ Borrar rama (sólo si no estás en ella)
$ git branch -d nombre-de-rama

+ Fusionar ramas (merge)
Es uno de los pasos más importantes, y se usa para incorporar los cambios realizados en una rama a
otra rama (por ejemplo, de la rama “nombre-de-rama” a la rama “master”)
$ git checkout master
$ git merge nombre-de-rama

Betabeers Córdoba XII

@sergiogomez
git + flujo habitual

Imagen: http://blogs.endjin.com/2013/04/a-step-by-step-guide-to-using-gitflow-with-teamcity-part-3-gitflow-commands/

Betabeers Córdoba XII

@sergiogomez
git + conflictos
+ Aparecen al intentar fusionar dos ramas que incluyan distintos cambios
sobre un mismo bloque de código
$ git merge nombre-de-rama
Auto-merging README
CONFLICT (content): Merge conflict in README
Automatic merge failed; fix conflicts and then commit the result.
$ cat README
<<<<<<< HEAD
Many Hello World Examples
=======
Hello World Lang Examples
>>>>>>> fix_readme

+ No se podrá hacer commit con la fusión de las ramas hasta que se resuelvan todos los conflictos
Betabeers Córdoba XII

@sergiogomez
git + log
+ Muestra el log completo
$ git log

+ Versión resumida (una línea por commit)
$ git log --oneline

+ Versión resumida en modo de grafo
$ git log --oneline --graph

Betabeers Córdoba XII

@sergiogomez
git + tags
+ Similar al commit, permite etiquetar hitos del desarrollo (versiones)
$ git tag -a v1.0 -m 'Primera versión pública'

+ Puede realizarse sobre commits anteriores
$ git tag -a v0.9 15b56f1 -m 'Primera beta interna'

Betabeers Córdoba XII

@sergiogomez
git + repositorios remotos
+ Es lo habitual a la hora de colaborar con otros programadores (github…)
+ También es útil para mantener copias remotas del código
+ Pueden gestionarse en cualquier momento
+ Un repositorio local puede conectarse con distintos repositorios remotos
+ Opciones para listar, añadir, eliminar, renombre y especificar URL
$
$
$
$
$

git
git
git
git
git

remote
remote
remote
remote
remote

Betabeers Córdoba XII

add github git@github.com:git/git.git
rm github
rename github origin
set-url origin git://github.com/git/git.git

@sergiogomez
git + repositorios remotos
+ Descargar nuevas ramas y datos de un repositorio remoto sin fusionar
$ git fetch origin

+ Descargar nuevas ramas y datos de un repositorio remoto y fusionar
$ git pull origin

+ Subir rama y sus datos a un repositorio remoto
IMPORTANTE: Sólo podrá realizarse tras haber descargado todos los cambios pendientes
$ git push origin master

Betabeers Córdoba XII

@sergiogomez
github
+ Alojamiento de repositorios Git públicos y privados
+ Red social de desarrolladores
+ Gestión colaborativa de proyectos de código
+ Hosting de proyectos

Betabeers Córdoba XII

@sergiogomez
github + crear una cuenta

Betabeers Córdoba XII

@sergiogomez
github + crear un repositorio

Betabeers Córdoba XII

@sergiogomez
github + clonar un repositorio público
$ git clone git@github.com:rails/rails.git

Betabeers Córdoba XII

@sergiogomez
github + forks de repositorios públicos
+ Podemos trabajar con un “fork” a partir del código de otros repositorios

+ Clonamos nuestro “fork” en nuestro equipo
+ Trabajamos con nuestra copia local (repositorio git)
+ Hacemos un “pull request” si queremos que el usuario original añada
nuestros cambios. Debemos explicar lo que hemos hecho y cómo se ha
hecho (convencerlo), y él decidirá si los incluye y si hay que hacer más
cambios.

Betabeers Córdoba XII

@sergiogomez
github + búsquedas

Betabeers Córdoba XII

@sergiogomez
github + red social de desarrolladores
+ Se puede navegar por todo el código de todos los repositorios públicos

Betabeers Córdoba XII

@sergiogomez
github + red social de desarrolladores
+ Puedes seguir a usuarios (como Twitter)
+ Puedes observar proyectos, y recibir notificaciones
cuando éstos tienen cambios
+ Puedes marcar proyectos como favoritos,
lo que te permite conocer cuáles son los
proyectos más populares (watchers + stars + forks)

Betabeers Córdoba XII

@sergiogomez
github + issues

Betabeers Córdoba XII

@sergiogomez
github + milestones

Betabeers Córdoba XII

@sergiogomez
gitolite + git en tu servidor
$ git clone git://github.com/sitaramc/gitolite
$ gitolite/install -ln
$ gitolite setup -pk your-name.pub

@staff
@projects

=
=

dilbert alice
foo bar

repo @projects baz
RW+
master
RW
R

=
=
=
=

@staff
ashok
ashok
wally

config hooks.emailprefix = '[%GL_REPO] '

Betabeers Córdoba XII

@sergiogomez
gitlab + ‘github’ en tu servidor

Betabeers Córdoba XII

@sergiogomez
links
+ git-scm.com + Página oficial de git
+ try.github.io + Aprende git desde el navegador
+ git-scm.com/book + Libro completo sobre git (licencia Creative Commons)
+ www.codeschool.com/courses/try-git + Curso online gratuito de git
+ gitref.org + Referencia de git
+ nvie.com/posts/a-successful-git-branching-model + Flujo de trabajo
+ guides.github.com + Guías de uso de github
+ git-scm.com/docs/gitk + Manual de Gitk
+ gitx.frim.nl + GitX + rowanj.github.io/gitx + GitX-dev
+ mac.github.com + GitHub Mac + windows.github.com + GitHub Windows
+ gitolite.com + Gitolite
+ gitlab.org + Gitlab
Betabeers Córdoba XII

@sergiogomez
¿¿PREGUNTAS??

Imagen: http://wallpaperpond.com/2011/04/cold-beer/

Betabeers Córdoba XII

@sergiogomez
¡¡MUCHÍSIMAS GRACIAS!!

Betabeers Córdoba XII

@sergiogomez

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
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
Patxi Gortázar
 
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
 
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesGit y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Paradigma Digital
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
Keopx
 
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
 
Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con Git
Daniel Salas Denegri
 
Versionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativoVersionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativo
Hernán Aguilera
 
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
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con GIT
Julio Silva
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
Sergio Rus
 
Introducción a GIT
Introducción a GITIntroducción a GIT
Introducción a GIT
Jose Emilio Labra Gayo
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada dia
Alan Descoins
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de git
Keopx
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHubdrsevilla
 
Repositorio concesionariocochesfloresgomezrobertocarlos
Repositorio concesionariocochesfloresgomezrobertocarlosRepositorio concesionariocochesfloresgomezrobertocarlos
Repositorio concesionariocochesfloresgomezrobertocarlos
Roberto Carlos Flores Gomez
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMP
Keopx
 

La actualidad más candente (20)

Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
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
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
Tallerintroducciongit
TallerintroducciongitTallerintroducciongit
Tallerintroducciongit
 
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
 
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesGit y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
Taller breve de introduccion a Git
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a Git
 
Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con Git
 
Versionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativoVersionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativo
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en español
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con GIT
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Introducción a GIT
Introducción a GITIntroducción a GIT
Introducción a GIT
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada dia
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de git
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHub
 
Git - Gitlab
Git - GitlabGit - Gitlab
Git - Gitlab
 
Repositorio concesionariocochesfloresgomezrobertocarlos
Repositorio concesionariocochesfloresgomezrobertocarlosRepositorio concesionariocochesfloresgomezrobertocarlos
Repositorio concesionariocochesfloresgomezrobertocarlos
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMP
 

Destacado

Git y github
Git y githubGit y github
Optimización Servidor Web
Optimización Servidor WebOptimización Servidor Web
Optimización Servidor Web
quaip
 
Primeros pasos de una aplicación web - Rails Girls Córdoba
Primeros pasos de una aplicación web - Rails Girls CórdobaPrimeros pasos de una aplicación web - Rails Girls Córdoba
Primeros pasos de una aplicación web - Rails Girls Córdoba
quaip
 
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - QuaipWordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
quaip
 
Git + Github - Sysmana 2014
Git + Github - Sysmana 2014Git + Github - Sysmana 2014
Git + Github - Sysmana 2014
quaip
 
Conflicting Advice on Git Usage Patterns & Their Implications
Conflicting Advice on Git Usage Patterns & Their ImplicationsConflicting Advice on Git Usage Patterns & Their Implications
Conflicting Advice on Git Usage Patterns & Their ImplicationsYoungSeok Yoon
 
Git
GitGit
Git
GitGit
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
quaip
 
Mastering GIT
Mastering GITMastering GIT
Mastering GIT
Hasnaeen Rahman
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Stanford GSB Corporate Governance Research Initiative
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
LinkedIn
 

Destacado (13)

Git y github
Git y githubGit y github
Git y github
 
Optimización Servidor Web
Optimización Servidor WebOptimización Servidor Web
Optimización Servidor Web
 
Primeros pasos de una aplicación web - Rails Girls Córdoba
Primeros pasos de una aplicación web - Rails Girls CórdobaPrimeros pasos de una aplicación web - Rails Girls Córdoba
Primeros pasos de una aplicación web - Rails Girls Córdoba
 
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - QuaipWordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
 
Git + Github - Sysmana 2014
Git + Github - Sysmana 2014Git + Github - Sysmana 2014
Git + Github - Sysmana 2014
 
Git tips
Git tipsGit tips
Git tips
 
Conflicting Advice on Git Usage Patterns & Their Implications
Conflicting Advice on Git Usage Patterns & Their ImplicationsConflicting Advice on Git Usage Patterns & Their Implications
Conflicting Advice on Git Usage Patterns & Their Implications
 
Git
GitGit
Git
 
Git
GitGit
Git
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
Mastering GIT
Mastering GITMastering GIT
Mastering GIT
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

Similar a Git + Github - Betabeers Córdoba XII

Git
GitGit
The Gift of Git [Español: La Palabra de Git]
The Gift of Git [Español: La Palabra de Git]The Gift of Git [Español: La Palabra de Git]
The Gift of Git [Español: La Palabra de Git]
Alfonso Felipe Cabargas Madrid
 
Taller Git en la URJC
Taller Git en la URJC Taller Git en la URJC
Taller Git en la URJC
sidelab
 
Mejora tu productividad con git
Mejora tu productividad con gitMejora tu productividad con git
Mejora tu productividad con git
ch1l3no
 
Mejorando en Git
Mejorando en GitMejorando en Git
Mejorando en Git
Sergi González Pérez
 
Git y github básico
Git y github básicoGit y github básico
Git y github básico
Nelson Manuel Ordaz Yglesias
 
Más allá de Git add/commit/push
Más allá de Git add/commit/pushMás allá de Git add/commit/push
Más allá de Git add/commit/push
Alexis Lopez
 
Git & GitHub Part II
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part II
Max Rodriguez
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4fyomaira
 
Uso de git para el mantenimiento de parches locales o públicos
Uso de git para el mantenimiento  de parches locales o públicosUso de git para el mantenimiento  de parches locales o públicos
Uso de git para el mantenimiento de parches locales o públicos
Iñaki Arenaza
 
Git 101+
Git 101+Git 101+
Git 101+
sys army
 
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxGuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
fuenzalidarodrigo
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
Joel Márquez
 
Gapand - por qué odio git?
Gapand - por qué odio git?Gapand - por qué odio git?
Gapand - por qué odio git?
Fernando Escolar Martínez-Berganza
 
Intro a GIT
Intro a GITIntro a GIT
Administra tu código con Git y Github
Administra tu código con Git y GithubAdministra tu código con Git y Github
Administra tu código con Git y Github
Javier Novoa Cataño
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
InterGraphicDESIGNS
 
Introducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitIntroducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y git
DrPantera
 
Flujos de trabajo y mejores prácticas en git
Flujos de trabajo y mejores prácticas en gitFlujos de trabajo y mejores prácticas en git
Flujos de trabajo y mejores prácticas en git
Luis Eduardo Jiménez Robles
 

Similar a Git + Github - Betabeers Córdoba XII (20)

Git
GitGit
Git
 
The Gift of Git [Español: La Palabra de Git]
The Gift of Git [Español: La Palabra de Git]The Gift of Git [Español: La Palabra de Git]
The Gift of Git [Español: La Palabra de Git]
 
Taller Git en la URJC
Taller Git en la URJC Taller Git en la URJC
Taller Git en la URJC
 
Mejora tu productividad con git
Mejora tu productividad con gitMejora tu productividad con git
Mejora tu productividad con git
 
Mejorando en Git
Mejorando en GitMejorando en Git
Mejorando en Git
 
Git y github básico
Git y github básicoGit y github básico
Git y github básico
 
Más allá de Git add/commit/push
Más allá de Git add/commit/pushMás allá de Git add/commit/push
Más allá de Git add/commit/push
 
Git & GitHub Part II
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part II
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4
 
Uso de git para el mantenimiento de parches locales o públicos
Uso de git para el mantenimiento  de parches locales o públicosUso de git para el mantenimiento  de parches locales o públicos
Uso de git para el mantenimiento de parches locales o públicos
 
Git 101+
Git 101+Git 101+
Git 101+
 
Mercurial
MercurialMercurial
Mercurial
 
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxGuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Gapand - por qué odio git?
Gapand - por qué odio git?Gapand - por qué odio git?
Gapand - por qué odio git?
 
Intro a GIT
Intro a GITIntro a GIT
Intro a GIT
 
Administra tu código con Git y Github
Administra tu código con Git y GithubAdministra tu código con Git y Github
Administra tu código con Git y Github
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
 
Introducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitIntroducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y git
 
Flujos de trabajo y mejores prácticas en git
Flujos de trabajo y mejores prácticas en gitFlujos de trabajo y mejores prácticas en git
Flujos de trabajo y mejores prácticas en git
 

Último

biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 

Último (20)

biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 

Git + Github - Betabeers Córdoba XII

  • 2. Sergio Gómez - @sergiogomez Una vida dedicada a la sonrisa, a mis niños, y al rock and roll ● Socio fundador de QuaiP.com ● Web Developer Ruby on Rails / HTML / CSS / jQuery ● SysOp LAMP, git… ● Coworker feliz en coSfera Betabeers Córdoba XII @sergiogomez
  • 3. ● Desarrollo e infraestructuras avanzadas de VoIP ● Servidores de streaming de radio y TV ● Cloud, hosting avanzado, VPS y servidores dedicados Betabeers Córdoba XII @sergiogomez
  • 4. git + Sistema de control de versiones distribuido, open source y gratuito + Creado por Linus Torvalds, para su uso en el desarrollo del kernel de Linux + Rápido, sólido, estable y fácilmente conectable + Desde cero, o a partir de Subversion y CVS Betabeers Córdoba XII @sergiogomez
  • 5. git + distribuido Imagen: http://nvie.com/posts/a-successful-git-branching-model/ Betabeers Córdoba XII @sergiogomez
  • 6. git + licencia libre + GNU General Public License version 2 + Algunas partes usan otras licencias, pero siempre compatibles con GPLv2 Betabeers Córdoba XII @sergiogomez
  • 7. git + instalación + Disponible en Linux, Mac OS X, Windows y Solaris Debian/Ubuntu $ apt-get install git Fedora $ yum install git Gentoo $ emerge --ask --verbose dev-vcs/git Betabeers Córdoba XII @sergiogomez
  • 8. git + gitk (linux) Betabeers Córdoba XII @sergiogomez
  • 9. git + gitx (mac) Betabeers Córdoba XII @sergiogomez
  • 10. git + gitx-dev (mac) Betabeers Córdoba XII @sergiogomez
  • 11. git + github for mac Betabeers Córdoba XII @sergiogomez
  • 12. git + github for windows Betabeers Córdoba XII @sergiogomez
  • 13. git + configuración + Necesario para identificar el trabajo que se realiza $ git config --global user.name "Sergio Gómez" $ git config --global user.email "sergio@quaip.com" + Puede ser distinto en cada repositorio $ cd repositorio $ git config user.name "Sergio Gómez" $ git config user.email "sergiogomez@gmail.com" Betabeers Córdoba XII @sergiogomez
  • 14. git + creación de un repositorio local + Puede crearse un repositorio desde cero $ mkdir some-repository $ cd some-repository $ git init + O crearse desde una carpeta con código $ cd project $ git init Betabeers Córdoba XII @sergiogomez
  • 15. git + clonar un repositorio remoto + Crea una copia local de un repositorio remoto para comenzar a trabajar directamente con él $ git clone https://github.com/drone/drone.git Cloning into 'drone'... remote: Counting objects: 590, done. remote: Compressing objects: 100% (339/339), done. remote: Total 590 (delta 265), reused 519 (delta 227) Receiving objects: 100% (590/590), 176.08 KiB | 205.00 KiB/s, done. Resolving deltas: 100% (265/265), done. Checking connectivity... done $ cd drone/ $ ls AUTHORS LICENSE Makefile README.md bin cmd deb Betabeers Córdoba XII @sergiogomez
  • 16. git + snapshotting + En git, básicamente lo que hacemos es componer y guardar snapshots (instantáneas) de un proyecto, trabajar con ellas y compararlas Imagen: http://slid.es/gruizdevilla/introduccion-a-git Betabeers Córdoba XII @sergiogomez
  • 17. git + staging area + Git usa un proceso de dos pasos para subir tus snapshots al repositorio: Paso 1 Paso 2 añadir ficheros y cambios al staging area git add git commit confirmar ficheros y cambios al repositorio local Imagen: http://graph1zzlle.github.io/posts/git-basics-revisited-part2/ Betabeers Córdoba XII @sergiogomez
  • 18. git + add + Es el comando con el que se añaden los cambios al staging area $ git add README hello.rb + Se pueden subir todos los ficheros directamente $ git add . Betabeers Córdoba XII @sergiogomez
  • 19. git + commit + Es el comando con el que se suben los cambios del staging al repositorio $ git commit + Es necesario incluir un mensaje que describa lo que se ha hecho $ git commit -m 'Cambios realizados' + Añadir automáticamente todos los cambios en los ficheros del staging area $ git commit -a -m 'Cambios realizados' Betabeers Córdoba XII @sergiogomez
  • 20. git + ¿se te ha escapado un commit? Imagen: http://www.librodearena.com/post/rompetejas/la-petra-nada-una-mas-que-cagar-juntitos/4384204/311860 Betabeers Córdoba XII @sergiogomez
  • 21. git + amend + Permite corregir (enmendar) el último commit $ git commit --amend Betabeers Córdoba XII @sergiogomez
  • 22. git + diff + Es la forma (que usan los buenos) de ver el código que ha cambiado desde el último commit y que no ha sido subido al índice: $ diff --git a/hello.rb b/hello.rb index d62ac43..8d15d50 100644 --- a/hello.rb +++ b/hello.rb @@ -1,7 +1,7 @@ class HelloWorld + def self.hello puts "hello world" puts "hola mundo" end end Betabeers Córdoba XII @sergiogomez
  • 23. git + diff Betabeers Córdoba XII @sergiogomez
  • 24. git + status + En todo momento podemos ver la situación de nuestra copia local: + Ficheros cambiados y añadidos al índice listos para el siguiente commit + Ficheros cambiados pero que no están añadidos al índice + Ficheros sin registrar por el índice + Rama en la que estás trabajando + Número de commits que aún no están en el repositorio remoto Betabeers Córdoba XII $ # # # # # # # # # # # # # # # git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: new file: README hello.rb Changed but (use "git (use "git modified: not updated: add <file>..." to update what will be... checkout -- <file>..." to discard chan... # README @sergiogomez
  • 25. git + deshacer + Al contrario que en la vida real, en git es realmente sencillo volver hacia atrás, deshacer acciones, e incluso reescribir la historia: Quitar un fichero del índice que ha cambiado $ git reset HEAD -- path/to/file Quitar un fichero nuevo del índice $ git rm --cached path/to/file Quieres deshacer los cambios de un fichero que no está en el índice $ git checkout -- path/to/file Has hecho un commit y lo quieres deshacer $ git reset --soft HEAD^ Betabeers Córdoba XII @sergiogomez
  • 26. git + mover y borrar ficheros + Mover un fichero $ git mv source target + Borrar un fichero $ git rm -- path/to/file + Borrar una carpeta $ git rn .r .. path/to/dir Betabeers Córdoba XII @sergiogomez
  • 27. git + stash + Guardar los cambios sin subir al índice a una pila de cambios (stack) $ git stash + Retomar los cambios y quitarlos de la pila $ git stash pop = $ git stash apply; git stash drop + Ver pila de cambios $ git stash list + Aplicar un cambio concreto de la pila $ git stash apply stash@{1} Betabeers Córdoba XII @sergiogomez
  • 28. git + branches + Crear rama $ git branch nombre-de-rama + Cambiar a una rama $ git checkout nombre-de-rama + Ver todas las ramas $ git branch + Crear y cambiar a una rama (en un solo paso) $ git checkout -b nombre-de-rama Betabeers Córdoba XII @sergiogomez
  • 29. git + branches + Borrar rama (sólo si no estás en ella) $ git branch -d nombre-de-rama + Fusionar ramas (merge) Es uno de los pasos más importantes, y se usa para incorporar los cambios realizados en una rama a otra rama (por ejemplo, de la rama “nombre-de-rama” a la rama “master”) $ git checkout master $ git merge nombre-de-rama Betabeers Córdoba XII @sergiogomez
  • 30. git + flujo habitual Imagen: http://blogs.endjin.com/2013/04/a-step-by-step-guide-to-using-gitflow-with-teamcity-part-3-gitflow-commands/ Betabeers Córdoba XII @sergiogomez
  • 31. git + conflictos + Aparecen al intentar fusionar dos ramas que incluyan distintos cambios sobre un mismo bloque de código $ git merge nombre-de-rama Auto-merging README CONFLICT (content): Merge conflict in README Automatic merge failed; fix conflicts and then commit the result. $ cat README <<<<<<< HEAD Many Hello World Examples ======= Hello World Lang Examples >>>>>>> fix_readme + No se podrá hacer commit con la fusión de las ramas hasta que se resuelvan todos los conflictos Betabeers Córdoba XII @sergiogomez
  • 32. git + log + Muestra el log completo $ git log + Versión resumida (una línea por commit) $ git log --oneline + Versión resumida en modo de grafo $ git log --oneline --graph Betabeers Córdoba XII @sergiogomez
  • 33. git + tags + Similar al commit, permite etiquetar hitos del desarrollo (versiones) $ git tag -a v1.0 -m 'Primera versión pública' + Puede realizarse sobre commits anteriores $ git tag -a v0.9 15b56f1 -m 'Primera beta interna' Betabeers Córdoba XII @sergiogomez
  • 34. git + repositorios remotos + Es lo habitual a la hora de colaborar con otros programadores (github…) + También es útil para mantener copias remotas del código + Pueden gestionarse en cualquier momento + Un repositorio local puede conectarse con distintos repositorios remotos + Opciones para listar, añadir, eliminar, renombre y especificar URL $ $ $ $ $ git git git git git remote remote remote remote remote Betabeers Córdoba XII add github git@github.com:git/git.git rm github rename github origin set-url origin git://github.com/git/git.git @sergiogomez
  • 35. git + repositorios remotos + Descargar nuevas ramas y datos de un repositorio remoto sin fusionar $ git fetch origin + Descargar nuevas ramas y datos de un repositorio remoto y fusionar $ git pull origin + Subir rama y sus datos a un repositorio remoto IMPORTANTE: Sólo podrá realizarse tras haber descargado todos los cambios pendientes $ git push origin master Betabeers Córdoba XII @sergiogomez
  • 36. github + Alojamiento de repositorios Git públicos y privados + Red social de desarrolladores + Gestión colaborativa de proyectos de código + Hosting de proyectos Betabeers Córdoba XII @sergiogomez
  • 37. github + crear una cuenta Betabeers Córdoba XII @sergiogomez
  • 38. github + crear un repositorio Betabeers Córdoba XII @sergiogomez
  • 39. github + clonar un repositorio público $ git clone git@github.com:rails/rails.git Betabeers Córdoba XII @sergiogomez
  • 40. github + forks de repositorios públicos + Podemos trabajar con un “fork” a partir del código de otros repositorios + Clonamos nuestro “fork” en nuestro equipo + Trabajamos con nuestra copia local (repositorio git) + Hacemos un “pull request” si queremos que el usuario original añada nuestros cambios. Debemos explicar lo que hemos hecho y cómo se ha hecho (convencerlo), y él decidirá si los incluye y si hay que hacer más cambios. Betabeers Córdoba XII @sergiogomez
  • 41. github + búsquedas Betabeers Córdoba XII @sergiogomez
  • 42. github + red social de desarrolladores + Se puede navegar por todo el código de todos los repositorios públicos Betabeers Córdoba XII @sergiogomez
  • 43. github + red social de desarrolladores + Puedes seguir a usuarios (como Twitter) + Puedes observar proyectos, y recibir notificaciones cuando éstos tienen cambios + Puedes marcar proyectos como favoritos, lo que te permite conocer cuáles son los proyectos más populares (watchers + stars + forks) Betabeers Córdoba XII @sergiogomez
  • 44. github + issues Betabeers Córdoba XII @sergiogomez
  • 45. github + milestones Betabeers Córdoba XII @sergiogomez
  • 46. gitolite + git en tu servidor $ git clone git://github.com/sitaramc/gitolite $ gitolite/install -ln $ gitolite setup -pk your-name.pub @staff @projects = = dilbert alice foo bar repo @projects baz RW+ master RW R = = = = @staff ashok ashok wally config hooks.emailprefix = '[%GL_REPO] ' Betabeers Córdoba XII @sergiogomez
  • 47. gitlab + ‘github’ en tu servidor Betabeers Córdoba XII @sergiogomez
  • 48. links + git-scm.com + Página oficial de git + try.github.io + Aprende git desde el navegador + git-scm.com/book + Libro completo sobre git (licencia Creative Commons) + www.codeschool.com/courses/try-git + Curso online gratuito de git + gitref.org + Referencia de git + nvie.com/posts/a-successful-git-branching-model + Flujo de trabajo + guides.github.com + Guías de uso de github + git-scm.com/docs/gitk + Manual de Gitk + gitx.frim.nl + GitX + rowanj.github.io/gitx + GitX-dev + mac.github.com + GitHub Mac + windows.github.com + GitHub Windows + gitolite.com + Gitolite + gitlab.org + Gitlab Betabeers Córdoba XII @sergiogomez