SlideShare a Scribd company logo
1 of 36
Download to read offline
---
+++
¿QUÉ ES GIT?




Lo primero que nos preguntamos es qué es exactamente Git.
Git es un sistema de control de
         versiones distribuido de código
            abierto diseñado para ser
                rápido y eficiente



- Un sistema de control de versiones permite a sus usuarios almacenar revisiones diferentes
de un mismo archivo y compararlas, restaurarlas y, a veces, mezclarlas.
¿POR QUÉ GIT?
No es Subversion
                       (o CVS, o RCS, o copiar directorios)




- Subversion fue creado hace más de diez años como evolución de CVS (que era una
evolución de RCS), pero al intentar ser una evolución, era un simple “parche” de su padre.
Garantiza la integridad de los datos




Git utiliza hashes SHA1 y en ocasiones criptografía para garantizar que todo el mundo tiene
los mismos datos y que estos no han sido modificados sin el conocimiento de los usuarios.
Quizá para un desarrollo personal esto no tenga sentido, pero para proyectos open source y
empresas sí lo tiene.
Sin repositorio central




Frente a SCM antiguos Git no necesita de un repositorio central o canónico, aunque tampoco
impide designar uno de los clones del repositorio como canónico. Esto permite una
flexibilidad imposible con otros sistemas, y muchas ventajas.
Cada usuario tiene un backup
              completo del repositorio




Los repositorios de cada usuario son un clon completo, y no una copia parcial de la última
versión. En el caso de fallo catastrófico de un supuesto repositorio central, no es necesario
más que clonar un repositorio de uno de los usuarios.
Se puede trabajar offline




El disponer de un repositorio completo, un usuario puede realizar todas las operaciones que
desee con su copia local, y sincronizarla con otras copias cuando vuelva a estar conectado.
¡Es rápido!




Al realizar todas las operaciones en local, no es necesario esperar al servidor para ver un log
de cambios, comparar con una versión anterior y otras operaciones.
PRIMEROS PASOS
Si habéis instalado Xcode 4 ya disponéis de un Git suficiente moderno para utilizar, y no hay
que hacer mucho más.
Personalmente el soporte de Xcode 4 me parece de broma. La vista de comparar versiones es
la única que posiblemente se salva, y no es tan buena. Ni siquiera es capaz de manejar muy
bien conflictos en el archivo de proyecto, lo que hace que el 50% de la veces casque.
GITX (L)
                                http://gitx.laullon.com


Mi recomendación es utilizar la Terminal y GitX. GitX es un cliente gráfico para Git, muy bien
enfocado y sencillo. No puede hacer todas las cosas, pero las que hace, las hace muy bien.
Hay muchas versiones de GitX. La original está más o menos abandonada. Luego apareció la
de brotherbard, y la que utilizo últimamente es la de Laullón.
Esta es la vista de para hacer commits. Cuando trabajo con Xcode siempre mantengo una
terminal en el directorio por si necesito teclear algún comando y GitX con el proyecto abierto.
INSTALACIÓN
                                 http://git-scm.com


Si queréis una versión más moderna podeis instalar Git desde el código fuente o un sistema
de paquetes como Homebrew.
$ git config --global user.name "Juan Pérez"
$ git config --global user.email juan.perez@example.com




Algo que no he encontrado como hacer en Xcode. Esto toca hacerlo en el Terminal. Sólo es
necesario hacerlo una vez.
$ git config --global core.editor                         "mate -w"
                              # o                         "nano -w"
                              # o                         "emacs"
                              # o                         "vim"




Otras configuraciones globales si os gusta trabajar en la terminal es elegir el editor que Git
invocará cuando necesite que editeis algún mensaje de commit o similares…
$ git config --global merge.tool opendiff




Y la herramienta que utilizará para mostrar las mezclas conflictivas (opendiff es una
herramienta gráfica que se instala con Xcode)
$ git config --global color.ui auto




Y finalmente para darle un toque de color a esa triste terminal.
UN WORKFLOW




Hay muchos posibles workflows con Git. Cada uno adecuando a un modo de desarrollar y a
un tipo de equipo. El kernel de Linux no utiliza repositorio centrales y forma una especie de
pirámide de responsables y utiliza “pull requests” mediante el correo electrónico. En
empresas lo normal es un repositorio central. Y hay muchas más. Git te da la libertad de
diseñar tu propio workflow.
GIT INIT

$ mkdir PajaritosCabreados; cd PajaritosCabreados
$ git init
Initialized empty Git repository in /Users/daniel/
PajaritosCabreados/.git/
$




Desde la terminal crear un repositorio es tan sencillo como crear un directorio y ejecutar “git
init” dentro de él. Git creará un directorio oculto dónde almacenará toda la información que él
necesite.
Desde Xcode, cuando se crea un nuevo proyecto y vamos a elegir un directorio para
almacenarlo se puede elegir crear un repositorio para el proyecto. A menos de que tengáis
una razón muy buena, todos los nuevos proyectos deberían estar bajo control de versiones,
aunque simplemente sea local.
Vamos a crear nuestro primer archivo, en el que incluiremos algún contenido.
GIT STATUS
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be
committed)
#
# main.m
nothing added to commit but untracked files present
(use "git add" to track)
$


Desde la terminal, en cualquier momento podemos ejecutar “git status” para comprobar en
que estado están nuestros archivos. Git incluye mucha información en él: la rama en la que
estamos, el número de commits por delante o por detrás de la rama del repositorio remoto,…
pero sobre todo el estado de los archivos. En este momento lo que nos dice es que hay un
archivo main.m del que no sabe nada.
GIT ADD



$ git add main.m
$




La primera orden a aprender es “git add”. Git no incluye ningún contenido al repositorio al
que no hayamos hecho un “git add”. La forma más normal es “git add nombre.archivo”, que
añade todos los cambios del archivo al “staging area” de Git.
$   git status
#   On branch master
#
#   Initial commit
#
#   Changes to be committed:
#     (use "git rm --cached <file>..." to unstage)
#
#   new file:           main.m
#
$



Si ejecutamos “git status” a continuación veremos que Git lo marca como “new file”.
Pero me he dado cuenta de que me faltaba una pequeña cosa, así que voy a editar de nuevo
el archivo y añadir una línea más.
$ git status
# On branch master
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
# new file:    main.m
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be
committed)
#   (use "git checkout -- <file>..." to discard changes
in working directory)
#
# modified:    main.m
#
$

En este momento si ejecutamos “git status” veremos algo curioso: un archivo está en dos
estados para Git: nuevo y modificado. Esta es una de las principales diferencias de Git, y una
de sus mejores características. Git no sigue a los archivos, sino a los contenidos; y el archivo
main.m tiene un contenido que hemos añadido al “staging area”, pero otro contenido (la línea
de la anterior diapositiva) que no, así que considera que el archivo está modificado. Podemos
añadir esa línea haciendo otro “git add”.
GIT COMMIT



$ git commit




Finalmente, para crear una nueva revisión se ejecutará “git commit”, que toma todos los
cambios del “staging area” y crea una revisión con ellos. Ningún cambio en el directorio de
trabajo que no esté en el “staging area” se incluirá en la revisión.
Git nos abrirá nuestro editor de texto dónde podremos escribir una pequeña descripción del
cambio realizado y sus motivos.
GIT COMMIT


$ git commit
[master (root-commit) 9108af0] Main function
  1 files changed, 8 insertions(+), 0 deletions(-)
  create mode 100644 main.m
$
…RINSE AND REPEAT




Ya solo queda repetir el proceso de modificar los archivos, añadir los cambios al “staging
area” y crear las nuevas revisiones.
¡AYUDA!




Git es muy amplio, esto es el proceso más sencillo y habitual, pero falta mucho por explicar
como los remotos, las ramas y muchas otras cosas.
Si necesitáis ayuda tenéis varios recursos a vuestra disposición.
$ git help <orden>
$ git <orden> --help




El primero es la ayuda en línea de Git. Con “git help” o “git --help” se pueden leer las páginas
de manual de Git. Las páginas de los mandatos básicos están muy bien redactadas e incluyen
ejemplos en la parte final.
DOCUMENTACIÓN
                       http://git-scm.com/documentation


Si preferís Internet el sitio de Git incluye mucha documentación y enlaces a tutoriales propios
y externos.
PRO GIT
                                    http://progit.org


Finalmente existe Pro Git, un libro gratuito que trata Git desde novato a experto. Existe una
versión en ePub muy bien preparada para el iPad.

More Related Content

What's hot

PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHubdrsevilla
 
Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)Iñaki Arenaza
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque prácticoPatxi Gortázar
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GITKeopx
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en españolRamón Glez
 
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 aplicacionesParadigma Digital
 
Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCarlos Huamaní
 
Taller breve de introduccion a Git
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a GitMario IC
 
Git + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIGit + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIquaip
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con gitJuan Vladimir
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de gitKeopx
 
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 GithubJavier Novoa Cataño
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con GITJulio Silva
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada diaAlan Descoins
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitManuel Ceron
 
Configurando un repositorio de git hub usando netbeans ide
Configurando un repositorio de git hub usando netbeans ideConfigurando un repositorio de git hub usando netbeans ide
Configurando un repositorio de git hub usando netbeans ideferosorno
 

What's hot (20)

PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHub
 
Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en español
 
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
 
Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
Fundamentos de GIt y Github
Fundamentos de GIt y GithubFundamentos de GIt y Github
Fundamentos de GIt y Github
 
Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en Github
 
Tallerintroducciongit
TallerintroducciongitTallerintroducciongit
Tallerintroducciongit
 
Taller breve de introduccion a Git
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a Git
 
Git + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIGit + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XII
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
 
Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con Git
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de 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
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con GIT
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada dia
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Configurando un repositorio de git hub usando netbeans ide
Configurando un repositorio de git hub usando netbeans ideConfigurando un repositorio de git hub usando netbeans ide
Configurando un repositorio de git hub usando netbeans ide
 

Similar to Git para-principiantes

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
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasJosé Moreno
 
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
 
Git & GitHub Part II
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part IIMax Rodriguez
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando GitHugo Gilmar Erazo
 
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora BlancoPresentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora BlancoAntonio Luque Bravo
 
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxGuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxfuenzalidarodrigo
 
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 gitDrPantera
 
Git y Github basico.pptx
Git y Github basico.pptxGit y Github basico.pptx
Git y Github basico.pptxssuser36d4d3
 
Configuración de github
Configuración de githubConfiguración de github
Configuración de githublpedrerosa
 
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
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4fyomaira
 

Similar to Git para-principiantes (20)

Git y github básico
Git y github básicoGit y github básico
Git y github básico
 
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
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
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 & GitHub Part II
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part II
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
 
Intro a GIT
Intro a GITIntro a GIT
Intro a GIT
 
Git.manual.usuario
Git.manual.usuarioGit.manual.usuario
Git.manual.usuario
 
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora BlancoPresentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
 
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxGuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
 
Git res baz ec - final
Git   res baz ec - finalGit   res baz ec - final
Git res baz ec - final
 
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
 
02 versionamientoy usogit_i_parte
02 versionamientoy usogit_i_parte02 versionamientoy usogit_i_parte
02 versionamientoy usogit_i_parte
 
Git y Github basico.pptx
Git y Github basico.pptxGit y Github basico.pptx
Git y Github basico.pptx
 
Configuración de github
Configuración de githubConfiguración de github
Configuración de github
 
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
 
Manual express de git
Manual express de gitManual express de git
Manual express de git
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4
 

Recently uploaded

KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 

Recently uploaded (20)

KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Git para-principiantes

  • 2. ¿QUÉ ES GIT? Lo primero que nos preguntamos es qué es exactamente Git.
  • 3. Git es un sistema de control de versiones distribuido de código abierto diseñado para ser rápido y eficiente - Un sistema de control de versiones permite a sus usuarios almacenar revisiones diferentes de un mismo archivo y compararlas, restaurarlas y, a veces, mezclarlas.
  • 5. No es Subversion (o CVS, o RCS, o copiar directorios) - Subversion fue creado hace más de diez años como evolución de CVS (que era una evolución de RCS), pero al intentar ser una evolución, era un simple “parche” de su padre.
  • 6. Garantiza la integridad de los datos Git utiliza hashes SHA1 y en ocasiones criptografía para garantizar que todo el mundo tiene los mismos datos y que estos no han sido modificados sin el conocimiento de los usuarios. Quizá para un desarrollo personal esto no tenga sentido, pero para proyectos open source y empresas sí lo tiene.
  • 7. Sin repositorio central Frente a SCM antiguos Git no necesita de un repositorio central o canónico, aunque tampoco impide designar uno de los clones del repositorio como canónico. Esto permite una flexibilidad imposible con otros sistemas, y muchas ventajas.
  • 8. Cada usuario tiene un backup completo del repositorio Los repositorios de cada usuario son un clon completo, y no una copia parcial de la última versión. En el caso de fallo catastrófico de un supuesto repositorio central, no es necesario más que clonar un repositorio de uno de los usuarios.
  • 9. Se puede trabajar offline El disponer de un repositorio completo, un usuario puede realizar todas las operaciones que desee con su copia local, y sincronizarla con otras copias cuando vuelva a estar conectado.
  • 10. ¡Es rápido! Al realizar todas las operaciones en local, no es necesario esperar al servidor para ver un log de cambios, comparar con una versión anterior y otras operaciones.
  • 12. Si habéis instalado Xcode 4 ya disponéis de un Git suficiente moderno para utilizar, y no hay que hacer mucho más. Personalmente el soporte de Xcode 4 me parece de broma. La vista de comparar versiones es la única que posiblemente se salva, y no es tan buena. Ni siquiera es capaz de manejar muy bien conflictos en el archivo de proyecto, lo que hace que el 50% de la veces casque.
  • 13. GITX (L) http://gitx.laullon.com Mi recomendación es utilizar la Terminal y GitX. GitX es un cliente gráfico para Git, muy bien enfocado y sencillo. No puede hacer todas las cosas, pero las que hace, las hace muy bien. Hay muchas versiones de GitX. La original está más o menos abandonada. Luego apareció la de brotherbard, y la que utilizo últimamente es la de Laullón.
  • 14. Esta es la vista de para hacer commits. Cuando trabajo con Xcode siempre mantengo una terminal en el directorio por si necesito teclear algún comando y GitX con el proyecto abierto.
  • 15. INSTALACIÓN http://git-scm.com Si queréis una versión más moderna podeis instalar Git desde el código fuente o un sistema de paquetes como Homebrew.
  • 16. $ git config --global user.name "Juan Pérez" $ git config --global user.email juan.perez@example.com Algo que no he encontrado como hacer en Xcode. Esto toca hacerlo en el Terminal. Sólo es necesario hacerlo una vez.
  • 17. $ git config --global core.editor "mate -w" # o "nano -w" # o "emacs" # o "vim" Otras configuraciones globales si os gusta trabajar en la terminal es elegir el editor que Git invocará cuando necesite que editeis algún mensaje de commit o similares…
  • 18. $ git config --global merge.tool opendiff Y la herramienta que utilizará para mostrar las mezclas conflictivas (opendiff es una herramienta gráfica que se instala con Xcode)
  • 19. $ git config --global color.ui auto Y finalmente para darle un toque de color a esa triste terminal.
  • 20. UN WORKFLOW Hay muchos posibles workflows con Git. Cada uno adecuando a un modo de desarrollar y a un tipo de equipo. El kernel de Linux no utiliza repositorio centrales y forma una especie de pirámide de responsables y utiliza “pull requests” mediante el correo electrónico. En empresas lo normal es un repositorio central. Y hay muchas más. Git te da la libertad de diseñar tu propio workflow.
  • 21. GIT INIT $ mkdir PajaritosCabreados; cd PajaritosCabreados $ git init Initialized empty Git repository in /Users/daniel/ PajaritosCabreados/.git/ $ Desde la terminal crear un repositorio es tan sencillo como crear un directorio y ejecutar “git init” dentro de él. Git creará un directorio oculto dónde almacenará toda la información que él necesite.
  • 22. Desde Xcode, cuando se crea un nuevo proyecto y vamos a elegir un directorio para almacenarlo se puede elegir crear un repositorio para el proyecto. A menos de que tengáis una razón muy buena, todos los nuevos proyectos deberían estar bajo control de versiones, aunque simplemente sea local.
  • 23. Vamos a crear nuestro primer archivo, en el que incluiremos algún contenido.
  • 24. GIT STATUS $ git status # On branch master # # Initial commit # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # main.m nothing added to commit but untracked files present (use "git add" to track) $ Desde la terminal, en cualquier momento podemos ejecutar “git status” para comprobar en que estado están nuestros archivos. Git incluye mucha información en él: la rama en la que estamos, el número de commits por delante o por detrás de la rama del repositorio remoto,… pero sobre todo el estado de los archivos. En este momento lo que nos dice es que hay un archivo main.m del que no sabe nada.
  • 25. GIT ADD $ git add main.m $ La primera orden a aprender es “git add”. Git no incluye ningún contenido al repositorio al que no hayamos hecho un “git add”. La forma más normal es “git add nombre.archivo”, que añade todos los cambios del archivo al “staging area” de Git.
  • 26. $ git status # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: main.m # $ Si ejecutamos “git status” a continuación veremos que Git lo marca como “new file”.
  • 27. Pero me he dado cuenta de que me faltaba una pequeña cosa, así que voy a editar de nuevo el archivo y añadir una línea más.
  • 28. $ git status # On branch master # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: main.m # # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: main.m # $ En este momento si ejecutamos “git status” veremos algo curioso: un archivo está en dos estados para Git: nuevo y modificado. Esta es una de las principales diferencias de Git, y una de sus mejores características. Git no sigue a los archivos, sino a los contenidos; y el archivo main.m tiene un contenido que hemos añadido al “staging area”, pero otro contenido (la línea de la anterior diapositiva) que no, así que considera que el archivo está modificado. Podemos añadir esa línea haciendo otro “git add”.
  • 29. GIT COMMIT $ git commit Finalmente, para crear una nueva revisión se ejecutará “git commit”, que toma todos los cambios del “staging area” y crea una revisión con ellos. Ningún cambio en el directorio de trabajo que no esté en el “staging area” se incluirá en la revisión.
  • 30. Git nos abrirá nuestro editor de texto dónde podremos escribir una pequeña descripción del cambio realizado y sus motivos.
  • 31. GIT COMMIT $ git commit [master (root-commit) 9108af0] Main function 1 files changed, 8 insertions(+), 0 deletions(-) create mode 100644 main.m $
  • 32. …RINSE AND REPEAT Ya solo queda repetir el proceso de modificar los archivos, añadir los cambios al “staging area” y crear las nuevas revisiones.
  • 33. ¡AYUDA! Git es muy amplio, esto es el proceso más sencillo y habitual, pero falta mucho por explicar como los remotos, las ramas y muchas otras cosas. Si necesitáis ayuda tenéis varios recursos a vuestra disposición.
  • 34. $ git help <orden> $ git <orden> --help El primero es la ayuda en línea de Git. Con “git help” o “git --help” se pueden leer las páginas de manual de Git. Las páginas de los mandatos básicos están muy bien redactadas e incluyen ejemplos en la parte final.
  • 35. DOCUMENTACIÓN http://git-scm.com/documentation Si preferís Internet el sitio de Git incluye mucha documentación y enlaces a tutoriales propios y externos.
  • 36. PRO GIT http://progit.org Finalmente existe Pro Git, un libro gratuito que trata Git desde novato a experto. Existe una versión en ePub muy bien preparada para el iPad.