SlideShare una empresa de Scribd logo
1 de 114
Descargar para leer sin conexión
LATEX y Git
¾Cómo controlar documentos en LATEX ecientemente?
Maikol Solís
LATEX
LATEX es un excelente sistema para crear textos
matemáticos.
Si no sabe como usarlo, pregunte, busque y aprenda porque
lo va a necesitar tarde o temprano.
Maikol Solís LATEX y Git 2 / 51
Sección 1
¾Qué es Git?
Maikol Solís LATEX y Git 3 / 51
Historia
Git fue creado por Linus Torvals en 2005.
La idea era poder controlar los cambios en el kernel Linux.
Las características del nuevo sistema eran:
Velocidad.
Diseño simple.
Desarrollo no lineal (trabajos en paralelo).
Fácil colaboración.
entre otros.
Maikol Solís LATEX y Git 4 / 51
¾Quién usa Git?
y muchísimos proyectos más...
Maikol Solís LATEX y Git 5 / 51
Instalación
Linux: Ubuntu, Debian, OpenSuse, Fedora, ...
Maikol Solís LATEX y Git 6 / 51
Instalación
Linux: Ubuntu, Debian, OpenSuse, Fedora, ...
MacOS: brew install git.
Maikol Solís LATEX y Git 6 / 51
Instalación
Linux: Ubuntu, Debian, OpenSuse, Fedora, ...
MacOS: brew install git.
Windows:
Maikol Solís LATEX y Git 6 / 51
Instalación
Linux: Ubuntu, Debian, OpenSuse, Fedora, ...
MacOS: brew install git.
Windows: Es posible pero desconozco como funciona.
Maikol Solís LATEX y Git 6 / 51
Sección 2
Nombres anticipados
Maikol Solís LATEX y Git 7 / 51
El problema
Se empieza un proyecto nuevo (artículo, tesis de maestría, lista de
ejercicios, reporte de proyecto, etc).
¾Cómo guardamos los cambios importantes?
Maikol Solís LATEX y Git 8 / 51
El problema
Se empieza un proyecto nuevo (artículo, tesis de maestría, lista de
ejercicios, reporte de proyecto, etc).
¾Cómo guardamos los cambios importantes?
Una forma es ir haciendo copias de seguridad.
proyecto.tex
proyecto.2013_08_01.tex
proyecto.2013_08_03.tex
...
Maikol Solís LATEX y Git 8 / 51
El problema
Se empieza un proyecto nuevo (artículo, tesis de maestría, lista de
ejercicios, reporte de proyecto, etc).
¾Cómo guardamos los cambios importantes?
Una forma es ir haciendo copias de seguridad.
proyecto.tex
proyecto.2013_08_01.tex
proyecto.2013_08_03.tex
...
Esto podría funcionar bien...
Maikol Solís LATEX y Git 8 / 51
El problema
¾O tal vez no?
Maikol Solís LATEX y Git 8 / 51
Final (¾?)
Maikol Solís LATEX y Git 9 / 51
Antes: Mi tesis de Maestría
Maikol Solís LATEX y Git 10 / 51
Entonces, ¾Cómo funciona Git?
Conserva una única versión de cada archivo.
Evita la repetición de archivos con diferentes nombres.
Maikol Solís LATEX y Git 11 / 51
Entonces, ¾Cómo funciona Git?
Conserva una única versión de cada archivo.
Evita la repetición de archivos con diferentes nombres.
Toma una foto de los cambios periódicamente.
Los cambios se guardan con el comando git commit.
Maikol Solís LATEX y Git 11 / 51
Entonces, ¾Cómo funciona Git?
Conserva una única versión de cada archivo.
Evita la repetición de archivos con diferentes nombres.
Toma una foto de los cambios periódicamente.
Los cambios se guardan con el comando git commit.
Esas fotos quedan en una bitácora de cambios.
Este registro es una memoria de largo plazo.
Maikol Solís LATEX y Git 11 / 51
Entonces, ¾Cómo funciona Git?
Archivo
proyecto.tex
Registro de cambios
Author: Fulano fulano@gee-mail.com
Date: Sat Mar 15 16:40:33 2008 -0700
agregué un nuevo teorema
Author: Sutano sutano@gee-mail.com
Date: Sat Mar 15 10:31:28 2008 -0700
primera modficación
Maikol Solís LATEX y Git 12 / 51
Después: Artículo controlado
Maikol Solís LATEX y Git 13 / 51
Sección 3
¾Cómo empiezo?
Maikol Solís LATEX y Git 14 / 51
El inicio  git init
Lo primero es crear un directorio compatible con Git.
$ cd /directorio/del/proyecto
$ git init
Initialized empty Git repository
in /directorio/del/proyecto/.git/
Maikol Solís LATEX y Git 15 / 51
El inicio  git init
Lo primero es crear un directorio compatible con Git.
$ cd /directorio/del/proyecto
$ git init
Initialized empty Git repository
in /directorio/del/proyecto/.git/
Recuerde
git init Inicializa cualquier directorio como un directorio Git.
Maikol Solís LATEX y Git 15 / 51
El inicio  git init
Lo primero es crear un directorio compatible con Git.
$ cd /directorio/del/proyecto
$ git init
Initialized empty Git repository
in /directorio/del/proyecto/.git/
Recuerde
git init Inicializa cualquier directorio como un directorio Git.
½Perfecto! Ya podemos empezar a trabajar.
Maikol Solís LATEX y Git 15 / 51
Aclaración: Dos formas de usar git.
Interfaz gráca: Git-Cola, SmartGit, etc.
Maikol Solís LATEX y Git 16 / 51
Aclaración: Dos formas de usar git.
Consola.
Maikol Solís LATEX y Git 16 / 51
Estado de las cosas  git status
$ git status
Maikol Solís LATEX y Git 17 / 51
Estado de las cosas  git status
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use git add file... to include in what will
#be committed)
#
# proyecto.tex
nothing added to commit but untracked files present
(use git add to track)
Maikol Solís LATEX y Git 17 / 51
Estado de las cosas  git status
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use git add file... to include in what will
#be committed)
#
# proyecto.tex
nothing added to commit but untracked files present
(use git add to track)
$ git status -s
?? proyecto.tex
Maikol Solís LATEX y Git 17 / 51
Agregando archivos  git add
Se tienen que denir cuales archivos quiero controlar.
Estos archivos se agregan a una zona temporal (staging).
$ git add proyecto.tex
Maikol Solís LATEX y Git 18 / 51
Agregando archivos  git add
Se tienen que denir cuales archivos quiero controlar.
Estos archivos se agregan a una zona temporal (staging).
$ git add proyecto.tex
$ git status -s
A proyecto.tex
Maikol Solís LATEX y Git 18 / 51
Manos a la obra
Comencemos a escribir nuestro documento...
documentclass{article}
title{Mi nuevo proyecto}
author{Profesor X}
begin{document}
maketitle
Este será un gran proyecto.
end{document}
Maikol Solís LATEX y Git 19 / 51
Manos a la obra
Comencemos a escribir nuestro documento...
documentclass{article}
title{Mi nuevo proyecto}
author{Profesor X}
begin{document}
maketitle
Este será un gran proyecto.
end{document}
Lo primero que notamos es
$ git status -s
AM proyecto.tex
Maikol Solís LATEX y Git 19 / 51
Viendo las diferencias  git diff
$ git diff
Maikol Solís LATEX y Git 20 / 51
Viendo las diferencias  git diff
$ git diff
diff --git a/proyecto.tex b/proyecto.tex
index e69de29..82e2f40 100644
--- a/proyecto.tex
+++ b/proyecto.tex
@@ -0,0 +1,7 @@
+documentclass{article}
+title{Mi nuevo proyecto}
+author{Profesor X}
+begin{document}
+maketitle
+Este será un gran proyecto.
+end{document}
Maikol Solís LATEX y Git 20 / 51
Viendo las diferencias  git diff
$ git diff
diff --git a/proyecto.tex b/proyecto.tex
index e69de29..82e2f40 100644
--- a/proyecto.tex
+++ b/proyecto.tex
@@ -0,0 +1,7 @@
+documentclass{article}
+title{Mi nuevo proyecto}
+author{Profesor X}
+begin{document}
+maketitle
+Este será un gran proyecto.
+end{document}
+ Línea agregada.
- Línea eliminada.
Maikol Solís LATEX y Git 20 / 51
Guardando los cambios  git commit
$ git commit proyecto.tex
Maikol Solís LATEX y Git 21 / 51
Guardando los cambios  git commit
$ git commit proyecto.tex
Iniciando mi nuevo proyecto - Mensaje opcional de los cambios.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# Explicit paths specified without -i nor -o; assuming only paths...
# On branch master
# Changes to be committed:
# (use git reset HEAD file... to unstage)
#
# modified: proyecto.tex
#
# Untracked files:
# (use git add file... to include in what will be committed)
#
# proyecto.aux
# proyecto.log
# proyecto.pdf
Maikol Solís LATEX y Git 21 / 51
Enjuage y repita
Se modica los archivos en la computadora.
Maikol Solís LATEX y Git 22 / 51
Enjuage y repita
Se modica los archivos en la computadora.
git add Agrega eso archivos a una zona temporal
Maikol Solís LATEX y Git 22 / 51
Enjuage y repita
Se modica los archivos en la computadora.
git add Agrega eso archivos a una zona temporal
git status Muestra el estado de los archivos modicados.
Maikol Solís LATEX y Git 22 / 51
Enjuage y repita
Se modica los archivos en la computadora.
git add Agrega eso archivos a una zona temporal
git status Muestra el estado de los archivos modicados.
git di Muestra las diferencias entre lo que está en la zona temporal y
lo que está en el directorio de trabajo.
Maikol Solís LATEX y Git 22 / 51
Enjuage y repita
Se modica los archivos en la computadora.
git add Agrega eso archivos a una zona temporal
git status Muestra el estado de los archivos modicados.
git di Muestra las diferencias entre lo que está en la zona temporal y
lo que está en el directorio de trabajo.
git commit Guarda todos los cambios de la zona temporal al registro
de cambios.
Maikol Solís LATEX y Git 22 / 51
Vamos por partes  hunks
Hagamos algunos cambios a nuestro documento.
documentclass[spanish]{article}
%% Paquetes
usepackage{amsthm}
usepackage{amsmath}
usepackage{amssymb}
%% Tipos de teorema
theoremstyle{plain}
newtheorem{teorema}{Teorema}
%% Titulo
title{Mi nuevo proyecto}
%% Autor
author{Profesor X}
%% Inicio
begin{document}
maketitle
Este ser'a un gran proyecto.
begin{teorema}
Para todo $thetainmathbb{R}$, $
end{teorema}
end{document}
Maikol Solís LATEX y Git 23 / 51
Vamos por partes  hunks
diff git a/proyecto.tex b/proyecto.tex
index 9ba2543..1b8308b 100644
- a/proyecto.tex
+++ b/proyecto.tex
@@ -1,5 +1,10 @@
documentclass[spanish]{article}
+%% Paquetes
+usepackage{amsthm}
+usepackage{amsmath}
+usepackage{amssymb}
+
%% Tipos de teorema
theoremstyle{plain}
newtheorem{teorema}{Teorema}
@@ -16,4 +21,8 @@
Este ser'a un gran proyecto.
+begin{teorema}
+ Para todo $thetainmathbb{R}$,
+ $sin^2theta+cos^2theta=1$.
+end{teorema}
+
Maikol Solís LATEX y Git 24 / 51
Vamos por partes  hunks
diff git a/proyecto.tex b/proyecto.tex
index 9ba2543..1b8308b 100644
- a/proyecto.tex
+++ b/proyecto.tex
@@ -1,5 +1,10 @@
documentclass[spanish]{article}
+%% Paquetes
+usepackage{amsthm}
+usepackage{amsmath}
+usepackage{amssymb}
+
%% Tipos de teorema
theoremstyle{plain}
newtheorem{teorema}{Teorema}
@@ -16,4 +21,8 @@
Este ser'a un gran proyecto.
+begin{teorema}
+ Para todo $thetainmathbb{R}$,
+ $sin^2theta+cos^2theta=1$.
+end{teorema}
+
Tarea
git commit -p Para guardar los cambios selectivamente.
Maikol Solís LATEX y Git 24 / 51
Recordando  git log
$ git log
Maikol Solís LATEX y Git 25 / 51
Recordando  git log
$ git log
commit 0f82ed2d76d1cfebf1c3bc606fbb7dc4bbf7983d
Author: Maikol Solís maikol.solis@ucr.ac.cr
Date: Fri Jul 26 10:39:26 2013 +0200
Nuevo teorema sobre trigonometría.
commit 902deb5716fe1a609ecb5ea76a61ec8938ebb382
Author: Maikol Solís maikol.solis@ucr.ac.cr
Date: Fri Jul 26 10:38:41 2013 +0200
Agregando los paquetes básicos de matemática
Maikol Solís LATEX y Git 25 / 51
Recordando  git log
$ git log
commit 0f82ed2d76d1cfebf1c3bc606fbb7dc4bbf7983d
Author: Maikol Solís maikol.solis@ucr.ac.cr
Date: Fri Jul 26 10:39:26 2013 +0200
Nuevo teorema sobre trigonometría.
commit 902deb5716fe1a609ecb5ea76a61ec8938ebb382
Author: Maikol Solís maikol.solis@ucr.ac.cr
Date: Fri Jul 26 10:38:41 2013 +0200
Agregando los paquetes básicos de matemática
Maikol Solís LATEX y Git 25 / 51
Recordando  git log
$ git log
commit 0f82ed2d76d1cfebf1c3bc606fbb7dc4bbf7983d
Author: Maikol Solís maikol.solis@ucr.ac.cr
Date: Fri Jul 26 10:39:26 2013 +0200
Nuevo teorema sobre trigonometría.
commit 902deb5716fe1a609ecb5ea76a61ec8938ebb382
Author: Maikol Solís maikol.solis@ucr.ac.cr
Date: Fri Jul 26 10:38:41 2013 +0200
Agregando los paquetes básicos de matemática
Maikol Solís LATEX y Git 25 / 51
Recordando  git log
$ git log
commit 0f82ed2d76d1cfebf1c3bc606fbb7dc4bbf7983d
Author: Maikol Solís maikol.solis@ucr.ac.cr
Date: Fri Jul 26 10:39:26 2013 +0200
Nuevo teorema sobre trigonometría.
commit 902deb5716fe1a609ecb5ea76a61ec8938ebb382
Author: Maikol Solís maikol.solis@ucr.ac.cr
Date: Fri Jul 26 10:38:41 2013 +0200
Agregando los paquetes básicos de matemática
Maikol Solís LATEX y Git 25 / 51
Recordando  git log
$ git log
commit 0f82ed2d76d1cfebf1c3bc606fbb7dc4bbf7983d
Author: Maikol Solís maikol.solis@ucr.ac.cr
Date: Fri Jul 26 10:39:26 2013 +0200
Nuevo teorema sobre trigonometría.
commit 902deb5716fe1a609ecb5ea76a61ec8938ebb382
Author: Maikol Solís maikol.solis@ucr.ac.cr
Date: Fri Jul 26 10:38:41 2013 +0200
Agregando los paquetes básicos de matemática
Maikol Solís LATEX y Git 25 / 51
Sección 4
No se ande por las ramas
Maikol Solís LATEX y Git 26 / 51
Trabajando en paralelo
¾Han notado algo raro en el mensaje de git status?
# On branch master
Maikol Solís LATEX y Git 27 / 51
Trabajando en paralelo
¾Han notado algo raro en el mensaje de git status?
# On branch master
Ramicar nuestro trabajo en diferentes proyectos o tareas
Borradores.
Nuevos elementos (ejemplos, ejercicios, simulaciones, etc.)
Ideas locas.
Maikol Solís LATEX y Git 27 / 51
Trabajando en paralelo
¾Han notado algo raro en el mensaje de git status?
# On branch master
Ramicar nuestro trabajo en diferentes proyectos o tareas
Borradores.
Nuevos elementos (ejemplos, ejercicios, simulaciones, etc.)
Ideas locas.
git branch nombre-rama copia la última versión de la rama actual a una
nueva rama llamada nombre-rama.
Maikol Solís LATEX y Git 27 / 51
Creando ramas  git branch
Para los que hacen tesis
Una rama llamada tutor les va a salvar la vida.
Maikol Solís LATEX y Git 28 / 51
Creando ramas  git branch
Para los que hacen tesis
Una rama llamada tutor les va a salvar la vida.
$ git branch tutor
Maikol Solís LATEX y Git 28 / 51
Creando ramas  git branch
Para los que hacen tesis
Una rama llamada tutor les va a salvar la vida.
$ git branch tutor
$ git branch nuevo-teorema
Maikol Solís LATEX y Git 28 / 51
Creando ramas  git branch
Para los que hacen tesis
Una rama llamada tutor les va a salvar la vida.
$ git branch tutor
$ git branch nuevo-teorema
$ git branch
* master
nuevo-teorema
tutor
Maikol Solís LATEX y Git 28 / 51
De rama en rama  git checkout
$ git checkout tutor
Switched to branch 'tutor'
Maikol Solís LATEX y Git 29 / 51
De rama en rama  git checkout
$ git checkout tutor
Switched to branch 'tutor'
$ git branch
master
nuevo-teorema
* tutor
Maikol Solís LATEX y Git 29 / 51
De rama en rama  git checkout
$ git checkout tutor
Switched to branch 'tutor'
$ git branch
master
nuevo-teorema
* tutor
Todos los archivos serán modicados en la rama tutor.
Si cambiamos a otra rama (master por ejemplo), todos los cambios se
revertirán hasta el último estado de la otra rama.
Maikol Solís LATEX y Git 29 / 51
De rama en rama  git checkout
$ git checkout tutor
Switched to branch 'tutor'
$ git branch
master
nuevo-teorema
* tutor
Todos los archivos serán modicados en la rama tutor.
Si cambiamos a otra rama (master por ejemplo), todos los cambios se
revertirán hasta el último estado de la otra rama.
½Ahora si ya podemos trabajar en paralelo!
Maikol Solís LATEX y Git 29 / 51
Modicamos el archivo en la rama tutor. Veamos el resultado:
Maikol Solís LATEX y Git 30 / 51
Modicamos el archivo en la rama tutor. Veamos el resultado:
$ git diff
...
begin{document}
maketitle
-Este será un gran proyecto.
+Mi tutor quiere que cambie la introducción.
begin{teorema}
Para todo $thetainmathbbR$,
$sin^2theta+cos^2theta=1$.
Maikol Solís LATEX y Git 30 / 51
Ejecutamos git checkout nuevo-teorema y modicamos otra vez el
archivo.
Maikol Solís LATEX y Git 31 / 51
Ejecutamos git checkout nuevo-teorema y modicamos otra vez el
archivo.
$ git diff
...
begin{teorema}
- Para todo $thetainmathbb{R}$,
- $sin^2theta+cos^2theta=1$.
+ Para todo $xinmathbb{R}$,
+$e^{ix} = cos x + isin x$ donde $i$
+es la unidad imaginaria.
end{teorema}
end{document}
Maikol Solís LATEX y Git 31 / 51
Ayuda visual  gitk
$ gitk
Maikol Solís LATEX y Git 32 / 51
Juntando todo  git merge
Queremos incluir los cambios de las ramas nuevo-teorema y tutor
en nuestro documento principal.
Maikol Solís LATEX y Git 33 / 51
Juntando todo  git merge
¾Qué hacemos?
1 $ git checkout master
Cambiamos a la rama donde queremos los cambios.
Maikol Solís LATEX y Git 33 / 51
Juntando todo  git merge
¾Qué hacemos?
1 $ git checkout master
Cambiamos a la rama donde queremos los cambios.
2 $ git merge nuevo-teorema
Fusionamos los cambios de la rama nuevo-teorema.
Maikol Solís LATEX y Git 33 / 51
Juntando todo  git merge
¾Qué hacemos?
1 $ git checkout master
Cambiamos a la rama donde queremos los cambios.
2 $ git merge nuevo-teorema
Fusionamos los cambios de la rama nuevo-teorema.
3 $ git merge tutor
Hacemos lo mismo con la rama tutor.
Maikol Solís LATEX y Git 33 / 51
¾Lo hice bien?
Maikol Solís LATEX y Git 34 / 51
Resumiendo
git branch Enlista, crea y maneja diferentes ramas de trabajo
Maikol Solís LATEX y Git 35 / 51
Resumiendo
git branch Enlista, crea y maneja diferentes ramas de trabajo
git checkout Cambia a una nueva rama de trabajo.
Maikol Solís LATEX y Git 35 / 51
Resumiendo
git branch Enlista, crea y maneja diferentes ramas de trabajo
git checkout Cambia a una nueva rama de trabajo.
git merge Fusiona una rama de trabajo dentro la rama actual.
Maikol Solís LATEX y Git 35 / 51
Sección 5
½Pasame el .tex!
Maikol Solís LATEX y Git 36 / 51
½Pasame el .tex!
Colaborar con archivos siempre ha sido complicado.
La forma tradicional es usar llave usb, email, etc.
Ahora se puede usar Dropbox, Gdrive, etc.
Maikol Solís LATEX y Git 37 / 51
½Pasame el .tex!
Colaborar con archivos siempre ha sido complicado.
La forma tradicional es usar llave usb, email, etc.
Ahora se puede usar Dropbox, Gdrive, etc.
¾Pero cómo sabemos quién cambió qué?
Maikol Solís LATEX y Git 37 / 51
½Pasame el .tex!
Colaborar con archivos siempre ha sido complicado.
La forma tradicional es usar llave usb, email, etc.
Ahora se puede usar Dropbox, Gdrive, etc.
¾Pero cómo sabemos quién cambió qué?
A veces tenemos muchas versiones del mismo archivo.
proyecto_definitivo.tex
proyecto_definitivo_cambios_Paco.tex
proyecto_definitivo_cambios_Elena.tex
proyecto_definitivo_Final.tex
...
¾Cuál enviamos?
Maikol Solís LATEX y Git 37 / 51
En las nubes  git remote
Git puede sincronizar nuestros documentos en la nube.
Maikol Solís LATEX y Git 38 / 51
En las nubes  git remote
Git puede sincronizar nuestros documentos en la nube.
Para eso hay muchos sitios especializados
www.github.com
www.bitbucket.org
etc.
Maikol Solís LATEX y Git 38 / 51
En las nubes  git remote
¾Cómo?
$ git remote add mirepo www.servidorgit.com/proyecto.git
Maikol Solís LATEX y Git 38 / 51
En las nubes  git remote
¾Cómo?
$ git remote add mirepo www.servidorgit.com/proyecto.git
Maikol Solís LATEX y Git 38 / 51
En las nubes  git remote
¾Cómo?
$ git remote add mirepo www.servidorgit.com/proyecto.git
Maikol Solís LATEX y Git 38 / 51
En las nubes  git remote
¾Cómo?
$ git remote add mirepo www.servidorgit.com/proyecto.git
Maikol Solís LATEX y Git 38 / 51
En las nubes  git remote
¾Cómo?
$ git remote add mirepo www.servidorgit.com/proyecto.git
# Para enviar todo el repositorio por primera vez
$ git push -u mirepo all
Maikol Solís LATEX y Git 38 / 51
En las nubes  git remote
¾Cómo?
$ git remote add mirepo www.servidorgit.com/proyecto.git
# Para enviar todo el repositorio por primera vez
$ git push -u mirepo all
www.servidorgit.com/proyecto.git
* [new branch] master - master
* [new branch] nuevo-teorema - nuevo-teorema
* [new branch] tutor - tutor
Branch master set up to track remote branch master from origin.
Branch nuevo-teorema set up to track remote branch nuevo-teorem
Branch tutor set up to track remote branch tutor from origin.
Maikol Solís LATEX y Git 38 / 51
El ataque de los clones  git clone
Marcos Ramírez quiere copiar localmente mi repositorio en su computadora
Maikol Solís LATEX y Git 39 / 51
El ataque de los clones  git clone
Marcos Ramírez quiere copiar localmente mi repositorio en su computadora
$ git clone www.servidorgit.com/proyecto.git
Maikol Solís LATEX y Git 39 / 51
El ataque de los clones  git clone
Marcos Ramírez quiere copiar localmente mi repositorio en su computadora
$ git clone www.servidorgit.com/proyecto.git
Cloning into 'proyecto'...
remote: Counting objects: 21, done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 21 (delta 6), reused 0 (delta 0)
Unpacking objects: 100 % (21/21), done.
Maikol Solís LATEX y Git 39 / 51
Rastreando cambios  Tracking branches
$ git branch -a
* master
remotes/origin/HEAD - origin/master
remotes/origin/master
remotes/origin/nuevo-teorema
remotes/origin/tutor
Maikol Solís LATEX y Git 40 / 51
Rastreando cambios  Tracking branches
$ git branch -a
* master
remotes/origin/HEAD - origin/master
remotes/origin/master
remotes/origin/nuevo-teorema
remotes/origin/tutor
Tracking branch
Crea una rama local ligada a la rama remota
$ git branch tutorMarcosRamirez remotes/origin/tutor
Maikol Solís LATEX y Git 40 / 51
½Empuje! ½Empuje!  git push
Marcos Ramirez modica la introducción en la rama tutor
$ git checkout tutorMarcosRamirez
$ git diff
...
-Mi tutor quiere que cambie la introducción.
+El problema que veremos a continuación es muy
+interesante. Vamos a analizarlo profundamente.
...
Maikol Solís LATEX y Git 41 / 51
½Empuje! ½Empuje!  git push
Luego él envía todos esos cambios al servidor remoto:
$ git push
To www.servidorgit.com/proyecto.git
f1afe8e..b0e7428 tutorMarcosRamirez - tutor
Maikol Solís LATEX y Git 41 / 51
½Jale! ½Jale!  git pull
Quiero recuperar los cambios que hizo Marcos Ramírez en mi computadora.
Maikol Solís LATEX y Git 42 / 51
½Jale! ½Jale!  git pull
Quiero recuperar los cambios que hizo Marcos Ramírez en mi computadora.
$ git pull
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From www.servidorgit.com/proyecto.git
f1afe8e..b0e7428 tutor - origin/tutor
Updating f1afe8e..b0e7428
Fast-forward
proyecto.tex | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Maikol Solís LATEX y Git 42 / 51
Todos ayudan
commit b0e742872d4207b27621b02401f2b601c1a1a067
Author: Marcos Ramírez marcos.ramirez@ucr.ac.cr
Date: Fri Aug 2 13:09:37 2013 -0600
Introducción por Marcos Ramírez
commit f1afe8ed5a928b82aeeb4d511d4b2a39fc01c235
Author: Maikol Solís maikol.solis@ucr.ac.cr
Date: Sat Jul 27 17:33:46 2013 +0200
Un cambio en la introducción
Maikol Solís LATEX y Git 43 / 51
Idea
Servidor propio  Escuela de Matemática
$ git remote add mirepo www.servidorgit.com/proyecto.git
Maikol Solís LATEX y Git 45 / 51
Servidor propio  Escuela de Matemática
$ git remote add mirepo www.emate.ucr.ac.cr/git/proyecto.git
$ git remote add mirepo git.emate.ucr.ac.cr/proyecto.git
Documentos de cursos:
Cartas al estudiante.
Listas de ejercicios.
Libros de texto.
Proyectos para grupos de investigación.
Artículos.
...
Maikol Solís LATEX y Git 45 / 51
Resumiendo
git remote Enlista, agrega y borra repositorios remotos.
Maikol Solís LATEX y Git 46 / 51
Resumiendo
git remote Enlista, agrega y borra repositorios remotos.
git clone Copia un repositorio git remoto a su computadora para
trabajar localmente.
Maikol Solís LATEX y Git 46 / 51
Resumiendo
git remote Enlista, agrega y borra repositorios remotos.
git clone Copia un repositorio git remoto a su computadora para
trabajar localmente.
git pull Carga los cambios desde un repositorio remoto y trata de
fusionar esos cambios en la rama actual. Otra opción es git fetch.
Maikol Solís LATEX y Git 46 / 51
Resumiendo
git remote Enlista, agrega y borra repositorios remotos.
git clone Copia un repositorio git remoto a su computadora para
trabajar localmente.
git pull Carga los cambios desde un repositorio remoto y trata de
fusionar esos cambios en la rama actual. Otra opción es git fetch.
git push Envía todos los cambios hacia los repositorios remotos.
Maikol Solís LATEX y Git 46 / 51
Sección 6
¾Y qué falta?
Maikol Solís LATEX y Git 47 / 51
TODO...
Revertir versiones.
Recuperar archivos. Git nunca borra, solo rastrea cambios.
Reescribir la historia de cambios.
Creación de roles de trabajo. Administrador, usuarios (lectura o
escritura).
y un gran etcétera.
Maikol Solís LATEX y Git 48 / 51
Sección 7
¾Y la ayuda?
Maikol Solís LATEX y Git 49 / 51
$ git comando --help
$ git help comando
Sitio ocial. www.git-scm.com
Tutoriales. www.atlassian.com/git/tutorial
Internet. Google es su amigo.
Maikol Solís LATEX y Git 50 / 51
¾Qué pasa después de leer la
documentación de Git?
½Muchas gracias por su atención!

Más contenido relacionado

La actualidad más candente

Paginacion sobre demanda y sobre paginacion
Paginacion sobre demanda y sobre paginacionPaginacion sobre demanda y sobre paginacion
Paginacion sobre demanda y sobre paginacionGuani Cesar
 
Principales características de QEMU
Principales características de QEMUPrincipales características de QEMU
Principales características de QEMUdegarden
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedioGuillermo
 
sistema operativo.pdf
sistema operativo.pdfsistema operativo.pdf
sistema operativo.pdfAminah Sivira
 
Calidad del software
Calidad del softwareCalidad del software
Calidad del softwareUTPL UTPL
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareJosé Antonio Sandoval Acosta
 
Generación de documentación con star UML
Generación de documentación con star UMLGeneración de documentación con star UML
Generación de documentación con star UMLSoftware Guru
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareT.I.C
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascadamasilog
 
Modelos de Procesos de Software
Modelos de Procesos de SoftwareModelos de Procesos de Software
Modelos de Procesos de SoftwareJiuseppe Flores
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitosZuleima
 

La actualidad más candente (20)

Paginacion sobre demanda y sobre paginacion
Paginacion sobre demanda y sobre paginacionPaginacion sobre demanda y sobre paginacion
Paginacion sobre demanda y sobre paginacion
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Tema 4: Procesamiento paralelo.
Tema 4: Procesamiento paralelo.Tema 4: Procesamiento paralelo.
Tema 4: Procesamiento paralelo.
 
Principales características de QEMU
Principales características de QEMUPrincipales características de QEMU
Principales características de QEMU
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
 
Seguridad y proteccion
Seguridad y proteccionSeguridad y proteccion
Seguridad y proteccion
 
sistema operativo.pdf
sistema operativo.pdfsistema operativo.pdf
sistema operativo.pdf
 
Calidad del software
Calidad del softwareCalidad del software
Calidad del software
 
Sistema de entrada/salida
Sistema de entrada/salidaSistema de entrada/salida
Sistema de entrada/salida
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
Generación de documentación con star UML
Generación de documentación con star UMLGeneración de documentación con star UML
Generación de documentación con star UML
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascada
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Algoritmo Blowfish y TwoFish
Algoritmo Blowfish y TwoFishAlgoritmo Blowfish y TwoFish
Algoritmo Blowfish y TwoFish
 
Modelos de Procesos de Software
Modelos de Procesos de SoftwareModelos de Procesos de Software
Modelos de Procesos de Software
 
Elementos basicos c
Elementos basicos cElementos basicos c
Elementos basicos c
 
Fases del Modelo PSP
Fases del Modelo PSPFases del Modelo PSP
Fases del Modelo PSP
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
 

Destacado (20)

La tex 2013
La tex 2013La tex 2013
La tex 2013
 
Transformadores
TransformadoresTransformadores
Transformadores
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Que es el sketch up
Que es el sketch upQue es el sketch up
Que es el sketch up
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHub
 
Edición de Textos Científicos de Alta Calidad LaTeX
Edición de Textos Científicos de Alta Calidad LaTeXEdición de Textos Científicos de Alta Calidad LaTeX
Edición de Textos Científicos de Alta Calidad LaTeX
 
Sketch up
Sketch upSketch up
Sketch up
 
Manual LyX: Con "L" de LaTeX
Manual LyX: Con "L" de LaTeXManual LyX: Con "L" de LaTeX
Manual LyX: Con "L" de LaTeX
 
Reporte 1 Circuitos Electricos Y Resistencia
Reporte 1 Circuitos Electricos Y ResistenciaReporte 1 Circuitos Electricos Y Resistencia
Reporte 1 Circuitos Electricos Y Resistencia
 
Manual de programacion LaTeX
Manual de programacion LaTeXManual de programacion LaTeX
Manual de programacion LaTeX
 
La tex edicion de textos cientificos latex 2014- mora. w, borbon. a
La tex   edicion de textos cientificos latex 2014- mora. w, borbon. aLa tex   edicion de textos cientificos latex 2014- mora. w, borbon. a
La tex edicion de textos cientificos latex 2014- mora. w, borbon. a
 
funcion de herramientas de sketch Up
funcion de herramientas de sketch Up  funcion de herramientas de sketch Up
funcion de herramientas de sketch Up
 
Tutorial share latex
Tutorial share latexTutorial share latex
Tutorial share latex
 
Presentacion latex
Presentacion latexPresentacion latex
Presentacion latex
 
LaTeX
LaTeXLaTeX
LaTeX
 
Curso LaTeX. UAM, 2012
Curso LaTeX. UAM, 2012Curso LaTeX. UAM, 2012
Curso LaTeX. UAM, 2012
 
User guide solid edge
User guide solid edgeUser guide solid edge
User guide solid edge
 
Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de git
 
Latex
LatexLatex
Latex
 

Similar a Git y LaTeX: Control de documentos

WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GITKeopx
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a gitKeopx
 
GITHUB control de versiones, para el manejo de repositorios versionados
GITHUB control de versiones, para el manejo de repositorios versionadosGITHUB control de versiones, para el manejo de repositorios versionados
GITHUB control de versiones, para el manejo de repositorios versionadosyuri460292
 
GIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfGIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfMartinBonuccelli
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con gitJuan Vladimir
 
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDADTodo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDADDIEGOALBERTOENRIQUEZ4
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasJosé Moreno
 
Mejora tu productividad con git
Mejora tu productividad con gitMejora tu productividad con git
Mejora tu productividad con gitch1l3no
 
Taller Git en la URJC
Taller Git en la URJC Taller Git en la URJC
Taller Git en la URJC sidelab
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando GitHugo Gilmar Erazo
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitManuel Ceron
 

Similar a Git y LaTeX: Control de documentos (20)

Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con Git
 
Git res baz ec - final
Git   res baz ec - finalGit   res baz ec - final
Git res baz ec - final
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
 
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
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
GITHUB control de versiones, para el manejo de repositorios versionados
GITHUB control de versiones, para el manejo de repositorios versionadosGITHUB control de versiones, para el manejo de repositorios versionados
GITHUB control de versiones, para el manejo de repositorios versionados
 
GIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfGIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdf
 
Tallerintroducciongit
TallerintroducciongitTallerintroducciongit
Tallerintroducciongit
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
 
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDADTodo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
 
Git - Gitlab
Git - GitlabGit - Gitlab
Git - Gitlab
 
Git y github básico
Git y github básicoGit y github básico
Git y github básico
 
Intro a GIT
Intro a GITIntro a GIT
Intro a GIT
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
Mejora tu productividad con git
Mejora tu productividad con gitMejora tu productividad con git
Mejora tu productividad con git
 
Taller Git en la URJC
Taller Git en la URJC Taller Git en la URJC
Taller Git en la URJC
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
 
Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Git
GitGit
Git
 

Último

Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativafiorelachuctaya2
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirPaddySydney1
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwealekzHuri
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 

Último (20)

Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativa
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartir
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 

Git y LaTeX: Control de documentos

  • 1. LATEX y Git ¾Cómo controlar documentos en LATEX ecientemente? Maikol Solís
  • 2. LATEX LATEX es un excelente sistema para crear textos matemáticos. Si no sabe como usarlo, pregunte, busque y aprenda porque lo va a necesitar tarde o temprano. Maikol Solís LATEX y Git 2 / 51
  • 3. Sección 1 ¾Qué es Git? Maikol Solís LATEX y Git 3 / 51
  • 4. Historia Git fue creado por Linus Torvals en 2005. La idea era poder controlar los cambios en el kernel Linux. Las características del nuevo sistema eran: Velocidad. Diseño simple. Desarrollo no lineal (trabajos en paralelo). Fácil colaboración. entre otros. Maikol Solís LATEX y Git 4 / 51
  • 5. ¾Quién usa Git? y muchísimos proyectos más... Maikol Solís LATEX y Git 5 / 51
  • 6. Instalación Linux: Ubuntu, Debian, OpenSuse, Fedora, ... Maikol Solís LATEX y Git 6 / 51
  • 7. Instalación Linux: Ubuntu, Debian, OpenSuse, Fedora, ... MacOS: brew install git. Maikol Solís LATEX y Git 6 / 51
  • 8. Instalación Linux: Ubuntu, Debian, OpenSuse, Fedora, ... MacOS: brew install git. Windows: Maikol Solís LATEX y Git 6 / 51
  • 9. Instalación Linux: Ubuntu, Debian, OpenSuse, Fedora, ... MacOS: brew install git. Windows: Es posible pero desconozco como funciona. Maikol Solís LATEX y Git 6 / 51
  • 10. Sección 2 Nombres anticipados Maikol Solís LATEX y Git 7 / 51
  • 11. El problema Se empieza un proyecto nuevo (artículo, tesis de maestría, lista de ejercicios, reporte de proyecto, etc). ¾Cómo guardamos los cambios importantes? Maikol Solís LATEX y Git 8 / 51
  • 12. El problema Se empieza un proyecto nuevo (artículo, tesis de maestría, lista de ejercicios, reporte de proyecto, etc). ¾Cómo guardamos los cambios importantes? Una forma es ir haciendo copias de seguridad. proyecto.tex proyecto.2013_08_01.tex proyecto.2013_08_03.tex ... Maikol Solís LATEX y Git 8 / 51
  • 13. El problema Se empieza un proyecto nuevo (artículo, tesis de maestría, lista de ejercicios, reporte de proyecto, etc). ¾Cómo guardamos los cambios importantes? Una forma es ir haciendo copias de seguridad. proyecto.tex proyecto.2013_08_01.tex proyecto.2013_08_03.tex ... Esto podría funcionar bien... Maikol Solís LATEX y Git 8 / 51
  • 14. El problema ¾O tal vez no? Maikol Solís LATEX y Git 8 / 51
  • 15. Final (¾?) Maikol Solís LATEX y Git 9 / 51
  • 16. Antes: Mi tesis de Maestría Maikol Solís LATEX y Git 10 / 51
  • 17. Entonces, ¾Cómo funciona Git? Conserva una única versión de cada archivo. Evita la repetición de archivos con diferentes nombres. Maikol Solís LATEX y Git 11 / 51
  • 18. Entonces, ¾Cómo funciona Git? Conserva una única versión de cada archivo. Evita la repetición de archivos con diferentes nombres. Toma una foto de los cambios periódicamente. Los cambios se guardan con el comando git commit. Maikol Solís LATEX y Git 11 / 51
  • 19. Entonces, ¾Cómo funciona Git? Conserva una única versión de cada archivo. Evita la repetición de archivos con diferentes nombres. Toma una foto de los cambios periódicamente. Los cambios se guardan con el comando git commit. Esas fotos quedan en una bitácora de cambios. Este registro es una memoria de largo plazo. Maikol Solís LATEX y Git 11 / 51
  • 20. Entonces, ¾Cómo funciona Git? Archivo proyecto.tex Registro de cambios Author: Fulano fulano@gee-mail.com Date: Sat Mar 15 16:40:33 2008 -0700 agregué un nuevo teorema Author: Sutano sutano@gee-mail.com Date: Sat Mar 15 10:31:28 2008 -0700 primera modficación Maikol Solís LATEX y Git 12 / 51
  • 21. Después: Artículo controlado Maikol Solís LATEX y Git 13 / 51
  • 22. Sección 3 ¾Cómo empiezo? Maikol Solís LATEX y Git 14 / 51
  • 23. El inicio git init Lo primero es crear un directorio compatible con Git. $ cd /directorio/del/proyecto $ git init Initialized empty Git repository in /directorio/del/proyecto/.git/ Maikol Solís LATEX y Git 15 / 51
  • 24. El inicio git init Lo primero es crear un directorio compatible con Git. $ cd /directorio/del/proyecto $ git init Initialized empty Git repository in /directorio/del/proyecto/.git/ Recuerde git init Inicializa cualquier directorio como un directorio Git. Maikol Solís LATEX y Git 15 / 51
  • 25. El inicio git init Lo primero es crear un directorio compatible con Git. $ cd /directorio/del/proyecto $ git init Initialized empty Git repository in /directorio/del/proyecto/.git/ Recuerde git init Inicializa cualquier directorio como un directorio Git. ½Perfecto! Ya podemos empezar a trabajar. Maikol Solís LATEX y Git 15 / 51
  • 26. Aclaración: Dos formas de usar git. Interfaz gráca: Git-Cola, SmartGit, etc. Maikol Solís LATEX y Git 16 / 51
  • 27. Aclaración: Dos formas de usar git. Consola. Maikol Solís LATEX y Git 16 / 51
  • 28. Estado de las cosas git status $ git status Maikol Solís LATEX y Git 17 / 51
  • 29. Estado de las cosas git status $ git status # On branch master # # Initial commit # # Untracked files: # (use git add file... to include in what will #be committed) # # proyecto.tex nothing added to commit but untracked files present (use git add to track) Maikol Solís LATEX y Git 17 / 51
  • 30. Estado de las cosas git status $ git status # On branch master # # Initial commit # # Untracked files: # (use git add file... to include in what will #be committed) # # proyecto.tex nothing added to commit but untracked files present (use git add to track) $ git status -s ?? proyecto.tex Maikol Solís LATEX y Git 17 / 51
  • 31. Agregando archivos git add Se tienen que denir cuales archivos quiero controlar. Estos archivos se agregan a una zona temporal (staging). $ git add proyecto.tex Maikol Solís LATEX y Git 18 / 51
  • 32. Agregando archivos git add Se tienen que denir cuales archivos quiero controlar. Estos archivos se agregan a una zona temporal (staging). $ git add proyecto.tex $ git status -s A proyecto.tex Maikol Solís LATEX y Git 18 / 51
  • 33. Manos a la obra Comencemos a escribir nuestro documento... documentclass{article} title{Mi nuevo proyecto} author{Profesor X} begin{document} maketitle Este será un gran proyecto. end{document} Maikol Solís LATEX y Git 19 / 51
  • 34. Manos a la obra Comencemos a escribir nuestro documento... documentclass{article} title{Mi nuevo proyecto} author{Profesor X} begin{document} maketitle Este será un gran proyecto. end{document} Lo primero que notamos es $ git status -s AM proyecto.tex Maikol Solís LATEX y Git 19 / 51
  • 35. Viendo las diferencias git diff $ git diff Maikol Solís LATEX y Git 20 / 51
  • 36. Viendo las diferencias git diff $ git diff diff --git a/proyecto.tex b/proyecto.tex index e69de29..82e2f40 100644 --- a/proyecto.tex +++ b/proyecto.tex @@ -0,0 +1,7 @@ +documentclass{article} +title{Mi nuevo proyecto} +author{Profesor X} +begin{document} +maketitle +Este será un gran proyecto. +end{document} Maikol Solís LATEX y Git 20 / 51
  • 37. Viendo las diferencias git diff $ git diff diff --git a/proyecto.tex b/proyecto.tex index e69de29..82e2f40 100644 --- a/proyecto.tex +++ b/proyecto.tex @@ -0,0 +1,7 @@ +documentclass{article} +title{Mi nuevo proyecto} +author{Profesor X} +begin{document} +maketitle +Este será un gran proyecto. +end{document} + Línea agregada. - Línea eliminada. Maikol Solís LATEX y Git 20 / 51
  • 38. Guardando los cambios git commit $ git commit proyecto.tex Maikol Solís LATEX y Git 21 / 51
  • 39. Guardando los cambios git commit $ git commit proyecto.tex Iniciando mi nuevo proyecto - Mensaje opcional de los cambios. # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # Explicit paths specified without -i nor -o; assuming only paths... # On branch master # Changes to be committed: # (use git reset HEAD file... to unstage) # # modified: proyecto.tex # # Untracked files: # (use git add file... to include in what will be committed) # # proyecto.aux # proyecto.log # proyecto.pdf Maikol Solís LATEX y Git 21 / 51
  • 40. Enjuage y repita Se modica los archivos en la computadora. Maikol Solís LATEX y Git 22 / 51
  • 41. Enjuage y repita Se modica los archivos en la computadora. git add Agrega eso archivos a una zona temporal Maikol Solís LATEX y Git 22 / 51
  • 42. Enjuage y repita Se modica los archivos en la computadora. git add Agrega eso archivos a una zona temporal git status Muestra el estado de los archivos modicados. Maikol Solís LATEX y Git 22 / 51
  • 43. Enjuage y repita Se modica los archivos en la computadora. git add Agrega eso archivos a una zona temporal git status Muestra el estado de los archivos modicados. git di Muestra las diferencias entre lo que está en la zona temporal y lo que está en el directorio de trabajo. Maikol Solís LATEX y Git 22 / 51
  • 44. Enjuage y repita Se modica los archivos en la computadora. git add Agrega eso archivos a una zona temporal git status Muestra el estado de los archivos modicados. git di Muestra las diferencias entre lo que está en la zona temporal y lo que está en el directorio de trabajo. git commit Guarda todos los cambios de la zona temporal al registro de cambios. Maikol Solís LATEX y Git 22 / 51
  • 45. Vamos por partes hunks Hagamos algunos cambios a nuestro documento. documentclass[spanish]{article} %% Paquetes usepackage{amsthm} usepackage{amsmath} usepackage{amssymb} %% Tipos de teorema theoremstyle{plain} newtheorem{teorema}{Teorema} %% Titulo title{Mi nuevo proyecto} %% Autor author{Profesor X} %% Inicio begin{document} maketitle Este ser'a un gran proyecto. begin{teorema} Para todo $thetainmathbb{R}$, $ end{teorema} end{document} Maikol Solís LATEX y Git 23 / 51
  • 46. Vamos por partes hunks diff git a/proyecto.tex b/proyecto.tex index 9ba2543..1b8308b 100644 - a/proyecto.tex +++ b/proyecto.tex @@ -1,5 +1,10 @@ documentclass[spanish]{article} +%% Paquetes +usepackage{amsthm} +usepackage{amsmath} +usepackage{amssymb} + %% Tipos de teorema theoremstyle{plain} newtheorem{teorema}{Teorema} @@ -16,4 +21,8 @@ Este ser'a un gran proyecto. +begin{teorema} + Para todo $thetainmathbb{R}$, + $sin^2theta+cos^2theta=1$. +end{teorema} + Maikol Solís LATEX y Git 24 / 51
  • 47. Vamos por partes hunks diff git a/proyecto.tex b/proyecto.tex index 9ba2543..1b8308b 100644 - a/proyecto.tex +++ b/proyecto.tex @@ -1,5 +1,10 @@ documentclass[spanish]{article} +%% Paquetes +usepackage{amsthm} +usepackage{amsmath} +usepackage{amssymb} + %% Tipos de teorema theoremstyle{plain} newtheorem{teorema}{Teorema} @@ -16,4 +21,8 @@ Este ser'a un gran proyecto. +begin{teorema} + Para todo $thetainmathbb{R}$, + $sin^2theta+cos^2theta=1$. +end{teorema} + Tarea git commit -p Para guardar los cambios selectivamente. Maikol Solís LATEX y Git 24 / 51
  • 48. Recordando git log $ git log Maikol Solís LATEX y Git 25 / 51
  • 49. Recordando git log $ git log commit 0f82ed2d76d1cfebf1c3bc606fbb7dc4bbf7983d Author: Maikol Solís maikol.solis@ucr.ac.cr Date: Fri Jul 26 10:39:26 2013 +0200 Nuevo teorema sobre trigonometría. commit 902deb5716fe1a609ecb5ea76a61ec8938ebb382 Author: Maikol Solís maikol.solis@ucr.ac.cr Date: Fri Jul 26 10:38:41 2013 +0200 Agregando los paquetes básicos de matemática Maikol Solís LATEX y Git 25 / 51
  • 50. Recordando git log $ git log commit 0f82ed2d76d1cfebf1c3bc606fbb7dc4bbf7983d Author: Maikol Solís maikol.solis@ucr.ac.cr Date: Fri Jul 26 10:39:26 2013 +0200 Nuevo teorema sobre trigonometría. commit 902deb5716fe1a609ecb5ea76a61ec8938ebb382 Author: Maikol Solís maikol.solis@ucr.ac.cr Date: Fri Jul 26 10:38:41 2013 +0200 Agregando los paquetes básicos de matemática Maikol Solís LATEX y Git 25 / 51
  • 51. Recordando git log $ git log commit 0f82ed2d76d1cfebf1c3bc606fbb7dc4bbf7983d Author: Maikol Solís maikol.solis@ucr.ac.cr Date: Fri Jul 26 10:39:26 2013 +0200 Nuevo teorema sobre trigonometría. commit 902deb5716fe1a609ecb5ea76a61ec8938ebb382 Author: Maikol Solís maikol.solis@ucr.ac.cr Date: Fri Jul 26 10:38:41 2013 +0200 Agregando los paquetes básicos de matemática Maikol Solís LATEX y Git 25 / 51
  • 52. Recordando git log $ git log commit 0f82ed2d76d1cfebf1c3bc606fbb7dc4bbf7983d Author: Maikol Solís maikol.solis@ucr.ac.cr Date: Fri Jul 26 10:39:26 2013 +0200 Nuevo teorema sobre trigonometría. commit 902deb5716fe1a609ecb5ea76a61ec8938ebb382 Author: Maikol Solís maikol.solis@ucr.ac.cr Date: Fri Jul 26 10:38:41 2013 +0200 Agregando los paquetes básicos de matemática Maikol Solís LATEX y Git 25 / 51
  • 53. Recordando git log $ git log commit 0f82ed2d76d1cfebf1c3bc606fbb7dc4bbf7983d Author: Maikol Solís maikol.solis@ucr.ac.cr Date: Fri Jul 26 10:39:26 2013 +0200 Nuevo teorema sobre trigonometría. commit 902deb5716fe1a609ecb5ea76a61ec8938ebb382 Author: Maikol Solís maikol.solis@ucr.ac.cr Date: Fri Jul 26 10:38:41 2013 +0200 Agregando los paquetes básicos de matemática Maikol Solís LATEX y Git 25 / 51
  • 54. Sección 4 No se ande por las ramas Maikol Solís LATEX y Git 26 / 51
  • 55. Trabajando en paralelo ¾Han notado algo raro en el mensaje de git status? # On branch master Maikol Solís LATEX y Git 27 / 51
  • 56. Trabajando en paralelo ¾Han notado algo raro en el mensaje de git status? # On branch master Ramicar nuestro trabajo en diferentes proyectos o tareas Borradores. Nuevos elementos (ejemplos, ejercicios, simulaciones, etc.) Ideas locas. Maikol Solís LATEX y Git 27 / 51
  • 57. Trabajando en paralelo ¾Han notado algo raro en el mensaje de git status? # On branch master Ramicar nuestro trabajo en diferentes proyectos o tareas Borradores. Nuevos elementos (ejemplos, ejercicios, simulaciones, etc.) Ideas locas. git branch nombre-rama copia la última versión de la rama actual a una nueva rama llamada nombre-rama. Maikol Solís LATEX y Git 27 / 51
  • 58. Creando ramas git branch Para los que hacen tesis Una rama llamada tutor les va a salvar la vida. Maikol Solís LATEX y Git 28 / 51
  • 59. Creando ramas git branch Para los que hacen tesis Una rama llamada tutor les va a salvar la vida. $ git branch tutor Maikol Solís LATEX y Git 28 / 51
  • 60. Creando ramas git branch Para los que hacen tesis Una rama llamada tutor les va a salvar la vida. $ git branch tutor $ git branch nuevo-teorema Maikol Solís LATEX y Git 28 / 51
  • 61. Creando ramas git branch Para los que hacen tesis Una rama llamada tutor les va a salvar la vida. $ git branch tutor $ git branch nuevo-teorema $ git branch * master nuevo-teorema tutor Maikol Solís LATEX y Git 28 / 51
  • 62. De rama en rama git checkout $ git checkout tutor Switched to branch 'tutor' Maikol Solís LATEX y Git 29 / 51
  • 63. De rama en rama git checkout $ git checkout tutor Switched to branch 'tutor' $ git branch master nuevo-teorema * tutor Maikol Solís LATEX y Git 29 / 51
  • 64. De rama en rama git checkout $ git checkout tutor Switched to branch 'tutor' $ git branch master nuevo-teorema * tutor Todos los archivos serán modicados en la rama tutor. Si cambiamos a otra rama (master por ejemplo), todos los cambios se revertirán hasta el último estado de la otra rama. Maikol Solís LATEX y Git 29 / 51
  • 65. De rama en rama git checkout $ git checkout tutor Switched to branch 'tutor' $ git branch master nuevo-teorema * tutor Todos los archivos serán modicados en la rama tutor. Si cambiamos a otra rama (master por ejemplo), todos los cambios se revertirán hasta el último estado de la otra rama. ½Ahora si ya podemos trabajar en paralelo! Maikol Solís LATEX y Git 29 / 51
  • 66. Modicamos el archivo en la rama tutor. Veamos el resultado: Maikol Solís LATEX y Git 30 / 51
  • 67. Modicamos el archivo en la rama tutor. Veamos el resultado: $ git diff ... begin{document} maketitle -Este será un gran proyecto. +Mi tutor quiere que cambie la introducción. begin{teorema} Para todo $thetainmathbbR$, $sin^2theta+cos^2theta=1$. Maikol Solís LATEX y Git 30 / 51
  • 68. Ejecutamos git checkout nuevo-teorema y modicamos otra vez el archivo. Maikol Solís LATEX y Git 31 / 51
  • 69. Ejecutamos git checkout nuevo-teorema y modicamos otra vez el archivo. $ git diff ... begin{teorema} - Para todo $thetainmathbb{R}$, - $sin^2theta+cos^2theta=1$. + Para todo $xinmathbb{R}$, +$e^{ix} = cos x + isin x$ donde $i$ +es la unidad imaginaria. end{teorema} end{document} Maikol Solís LATEX y Git 31 / 51
  • 70. Ayuda visual gitk $ gitk Maikol Solís LATEX y Git 32 / 51
  • 71. Juntando todo git merge Queremos incluir los cambios de las ramas nuevo-teorema y tutor en nuestro documento principal. Maikol Solís LATEX y Git 33 / 51
  • 72. Juntando todo git merge ¾Qué hacemos? 1 $ git checkout master Cambiamos a la rama donde queremos los cambios. Maikol Solís LATEX y Git 33 / 51
  • 73. Juntando todo git merge ¾Qué hacemos? 1 $ git checkout master Cambiamos a la rama donde queremos los cambios. 2 $ git merge nuevo-teorema Fusionamos los cambios de la rama nuevo-teorema. Maikol Solís LATEX y Git 33 / 51
  • 74. Juntando todo git merge ¾Qué hacemos? 1 $ git checkout master Cambiamos a la rama donde queremos los cambios. 2 $ git merge nuevo-teorema Fusionamos los cambios de la rama nuevo-teorema. 3 $ git merge tutor Hacemos lo mismo con la rama tutor. Maikol Solís LATEX y Git 33 / 51
  • 75. ¾Lo hice bien? Maikol Solís LATEX y Git 34 / 51
  • 76. Resumiendo git branch Enlista, crea y maneja diferentes ramas de trabajo Maikol Solís LATEX y Git 35 / 51
  • 77. Resumiendo git branch Enlista, crea y maneja diferentes ramas de trabajo git checkout Cambia a una nueva rama de trabajo. Maikol Solís LATEX y Git 35 / 51
  • 78. Resumiendo git branch Enlista, crea y maneja diferentes ramas de trabajo git checkout Cambia a una nueva rama de trabajo. git merge Fusiona una rama de trabajo dentro la rama actual. Maikol Solís LATEX y Git 35 / 51
  • 79. Sección 5 ½Pasame el .tex! Maikol Solís LATEX y Git 36 / 51
  • 80. ½Pasame el .tex! Colaborar con archivos siempre ha sido complicado. La forma tradicional es usar llave usb, email, etc. Ahora se puede usar Dropbox, Gdrive, etc. Maikol Solís LATEX y Git 37 / 51
  • 81. ½Pasame el .tex! Colaborar con archivos siempre ha sido complicado. La forma tradicional es usar llave usb, email, etc. Ahora se puede usar Dropbox, Gdrive, etc. ¾Pero cómo sabemos quién cambió qué? Maikol Solís LATEX y Git 37 / 51
  • 82. ½Pasame el .tex! Colaborar con archivos siempre ha sido complicado. La forma tradicional es usar llave usb, email, etc. Ahora se puede usar Dropbox, Gdrive, etc. ¾Pero cómo sabemos quién cambió qué? A veces tenemos muchas versiones del mismo archivo. proyecto_definitivo.tex proyecto_definitivo_cambios_Paco.tex proyecto_definitivo_cambios_Elena.tex proyecto_definitivo_Final.tex ... ¾Cuál enviamos? Maikol Solís LATEX y Git 37 / 51
  • 83. En las nubes git remote Git puede sincronizar nuestros documentos en la nube. Maikol Solís LATEX y Git 38 / 51
  • 84. En las nubes git remote Git puede sincronizar nuestros documentos en la nube. Para eso hay muchos sitios especializados www.github.com www.bitbucket.org etc. Maikol Solís LATEX y Git 38 / 51
  • 85. En las nubes git remote ¾Cómo? $ git remote add mirepo www.servidorgit.com/proyecto.git Maikol Solís LATEX y Git 38 / 51
  • 86. En las nubes git remote ¾Cómo? $ git remote add mirepo www.servidorgit.com/proyecto.git Maikol Solís LATEX y Git 38 / 51
  • 87. En las nubes git remote ¾Cómo? $ git remote add mirepo www.servidorgit.com/proyecto.git Maikol Solís LATEX y Git 38 / 51
  • 88. En las nubes git remote ¾Cómo? $ git remote add mirepo www.servidorgit.com/proyecto.git Maikol Solís LATEX y Git 38 / 51
  • 89. En las nubes git remote ¾Cómo? $ git remote add mirepo www.servidorgit.com/proyecto.git # Para enviar todo el repositorio por primera vez $ git push -u mirepo all Maikol Solís LATEX y Git 38 / 51
  • 90. En las nubes git remote ¾Cómo? $ git remote add mirepo www.servidorgit.com/proyecto.git # Para enviar todo el repositorio por primera vez $ git push -u mirepo all www.servidorgit.com/proyecto.git * [new branch] master - master * [new branch] nuevo-teorema - nuevo-teorema * [new branch] tutor - tutor Branch master set up to track remote branch master from origin. Branch nuevo-teorema set up to track remote branch nuevo-teorem Branch tutor set up to track remote branch tutor from origin. Maikol Solís LATEX y Git 38 / 51
  • 91. El ataque de los clones git clone Marcos Ramírez quiere copiar localmente mi repositorio en su computadora Maikol Solís LATEX y Git 39 / 51
  • 92. El ataque de los clones git clone Marcos Ramírez quiere copiar localmente mi repositorio en su computadora $ git clone www.servidorgit.com/proyecto.git Maikol Solís LATEX y Git 39 / 51
  • 93. El ataque de los clones git clone Marcos Ramírez quiere copiar localmente mi repositorio en su computadora $ git clone www.servidorgit.com/proyecto.git Cloning into 'proyecto'... remote: Counting objects: 21, done. remote: Compressing objects: 100% (14/14), done. remote: Total 21 (delta 6), reused 0 (delta 0) Unpacking objects: 100 % (21/21), done. Maikol Solís LATEX y Git 39 / 51
  • 94. Rastreando cambios Tracking branches $ git branch -a * master remotes/origin/HEAD - origin/master remotes/origin/master remotes/origin/nuevo-teorema remotes/origin/tutor Maikol Solís LATEX y Git 40 / 51
  • 95. Rastreando cambios Tracking branches $ git branch -a * master remotes/origin/HEAD - origin/master remotes/origin/master remotes/origin/nuevo-teorema remotes/origin/tutor Tracking branch Crea una rama local ligada a la rama remota $ git branch tutorMarcosRamirez remotes/origin/tutor Maikol Solís LATEX y Git 40 / 51
  • 96. ½Empuje! ½Empuje! git push Marcos Ramirez modica la introducción en la rama tutor $ git checkout tutorMarcosRamirez $ git diff ... -Mi tutor quiere que cambie la introducción. +El problema que veremos a continuación es muy +interesante. Vamos a analizarlo profundamente. ... Maikol Solís LATEX y Git 41 / 51
  • 97. ½Empuje! ½Empuje! git push Luego él envía todos esos cambios al servidor remoto: $ git push To www.servidorgit.com/proyecto.git f1afe8e..b0e7428 tutorMarcosRamirez - tutor Maikol Solís LATEX y Git 41 / 51
  • 98. ½Jale! ½Jale! git pull Quiero recuperar los cambios que hizo Marcos Ramírez en mi computadora. Maikol Solís LATEX y Git 42 / 51
  • 99. ½Jale! ½Jale! git pull Quiero recuperar los cambios que hizo Marcos Ramírez en mi computadora. $ git pull remote: Counting objects: 5, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 1), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From www.servidorgit.com/proyecto.git f1afe8e..b0e7428 tutor - origin/tutor Updating f1afe8e..b0e7428 Fast-forward proyecto.tex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Maikol Solís LATEX y Git 42 / 51
  • 100. Todos ayudan commit b0e742872d4207b27621b02401f2b601c1a1a067 Author: Marcos Ramírez marcos.ramirez@ucr.ac.cr Date: Fri Aug 2 13:09:37 2013 -0600 Introducción por Marcos Ramírez commit f1afe8ed5a928b82aeeb4d511d4b2a39fc01c235 Author: Maikol Solís maikol.solis@ucr.ac.cr Date: Sat Jul 27 17:33:46 2013 +0200 Un cambio en la introducción Maikol Solís LATEX y Git 43 / 51
  • 101. Idea
  • 102. Servidor propio Escuela de Matemática $ git remote add mirepo www.servidorgit.com/proyecto.git Maikol Solís LATEX y Git 45 / 51
  • 103. Servidor propio Escuela de Matemática $ git remote add mirepo www.emate.ucr.ac.cr/git/proyecto.git $ git remote add mirepo git.emate.ucr.ac.cr/proyecto.git Documentos de cursos: Cartas al estudiante. Listas de ejercicios. Libros de texto. Proyectos para grupos de investigación. Artículos. ... Maikol Solís LATEX y Git 45 / 51
  • 104. Resumiendo git remote Enlista, agrega y borra repositorios remotos. Maikol Solís LATEX y Git 46 / 51
  • 105. Resumiendo git remote Enlista, agrega y borra repositorios remotos. git clone Copia un repositorio git remoto a su computadora para trabajar localmente. Maikol Solís LATEX y Git 46 / 51
  • 106. Resumiendo git remote Enlista, agrega y borra repositorios remotos. git clone Copia un repositorio git remoto a su computadora para trabajar localmente. git pull Carga los cambios desde un repositorio remoto y trata de fusionar esos cambios en la rama actual. Otra opción es git fetch. Maikol Solís LATEX y Git 46 / 51
  • 107. Resumiendo git remote Enlista, agrega y borra repositorios remotos. git clone Copia un repositorio git remoto a su computadora para trabajar localmente. git pull Carga los cambios desde un repositorio remoto y trata de fusionar esos cambios en la rama actual. Otra opción es git fetch. git push Envía todos los cambios hacia los repositorios remotos. Maikol Solís LATEX y Git 46 / 51
  • 108. Sección 6 ¾Y qué falta? Maikol Solís LATEX y Git 47 / 51
  • 109. TODO... Revertir versiones. Recuperar archivos. Git nunca borra, solo rastrea cambios. Reescribir la historia de cambios. Creación de roles de trabajo. Administrador, usuarios (lectura o escritura). y un gran etcétera. Maikol Solís LATEX y Git 48 / 51
  • 110. Sección 7 ¾Y la ayuda? Maikol Solís LATEX y Git 49 / 51
  • 111. $ git comando --help $ git help comando Sitio ocial. www.git-scm.com Tutoriales. www.atlassian.com/git/tutorial Internet. Google es su amigo. Maikol Solís LATEX y Git 50 / 51
  • 112. ¾Qué pasa después de leer la documentación de Git?
  • 113.
  • 114. ½Muchas gracias por su atención!