Diferencia entre revisiones de «Usuario:ManuelRomero/Git»
De WikiEducator
(→Instalado zsh) |
|||
(16 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
+ | {{#widget:Slides}} | ||
+ | <div class="slides layout-regular template-default"> | ||
+ | <div class="slide"> | ||
+ | |||
+ | |||
+ | ===Referencias=== | ||
+ | <br /> | ||
+ | {{Recursos de la Web| | ||
+ | *https://www.codecademy.com/es/learn/learn-git | ||
+ | *https://github.com/domnikl/DesignPatternsPHP | ||
+ | *https://github.com/ziadoz/awesome-php | ||
+ | *https://medium.freecodecamp.com/7-git-hacks-you-just-can-t-ignore-41aea137727a#.1zxxt4xwl(edited) | ||
+ | *Hoja resumen muy buena https://rogerdudler.github.io/git-guide/files/git_cheat_sheet.pdf | ||
+ | }} | ||
===Qué es Git=== | ===Qué es Git=== | ||
− | + | [[Imagen:logoGit.png|200px|center]] | |
{{Definicion|Es un software para gestionar el versionado de un fichero o conjunto de ficheros. Cuelgan de un directorio concreto y solemos referirnos a ellos como un proyecto.}} | {{Definicion|Es un software para gestionar el versionado de un fichero o conjunto de ficheros. Cuelgan de un directorio concreto y solemos referirnos a ellos como un proyecto.}} | ||
− | *Esto implica que podemos establecer estados o versiones y podemos en un momento dado recuperar ese fichero o conjunto de ficheros a una versión | + | *Página oficial '''''https://git-scm.com/''''' |
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ;Concepto de '''''git''''' | ||
+ | *Esto implica que podemos establecer '''''estados''''' o '''''versiones''''' y podemos, en un momento dado, '''recuperar''' ese fichero o conjunto de ficheros a una versión concreta. | ||
*Esto también conlleva intrínsecamente copias de seguridad (Una por cada versión). | *Esto también conlleva intrínsecamente copias de seguridad (Una por cada versión). | ||
+ | *Con git puedo (debo) tener una copia del proyecto en un momento dado en mi local a partir de un servidor donde está el código del proyecto. Después de trabajar en local lo volveré a dejar en el servidor | ||
+ | </div> | ||
+ | <div class="slide"> | ||
;Ventajas | ;Ventajas | ||
− | *Recupear el conjunto de | + | *Recupear el conjunto de ficheros (1 0 más) de una versión concreta. |
− | * | + | *Analizar los cambios realizados entre dos versiones |
− | *Ver el seguimiento de un proyecto o preceso de realización de los ficheros / Aplicaciones | + | *Ver el seguimiento de un proyecto o preceso de realización de los ficheros / Aplicaciones. |
− | *Ver | + | *Ver quién y cuándo ha realizado cambios. |
− | *En general controlar la evolución del proyecto | + | *En general controlar la evolución del proyecto. |
+ | </div> | ||
+ | <div class="slide"> | ||
;Git como un sistema descentralizado | ;Git como un sistema descentralizado | ||
*Centralizado Vs Descentralizado | *Centralizado Vs Descentralizado | ||
Línea 15: | Línea 38: | ||
[[imagen:sistemaCentralizado.png|400px|center]] | [[imagen:sistemaCentralizado.png|400px|center]] | ||
*Todas las operaciones se hacen sobre un servidor | *Todas las operaciones se hacen sobre un servidor | ||
+ | </div> | ||
+ | <div class="slide"> | ||
;Sistema descentralizado | ;Sistema descentralizado | ||
*Las operaciones las hacemos sobre un local (En local tenemos que tener un repositorio). | *Las operaciones las hacemos sobre un local (En local tenemos que tener un repositorio). | ||
− | *Cuando queremos podemos subir los cambios a un servidor. | + | *Cuando queremos, podemos subir los cambios a un servidor. |
+ | *Del servidor podemos volver a establecer un estado de partido o establecer un repositorio en local | ||
+ | [[Imagen:gitDescentralizado.png]] | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | |||
===Funcionamiento de Git=== | ===Funcionamiento de Git=== | ||
*Funciona como un sistema descentralizado | *Funciona como un sistema descentralizado | ||
*Cada vez que guardamos cambios hace una copia del proyecto tal cual está | *Cada vez que guardamos cambios hace una copia del proyecto tal cual está | ||
− | *Si | + | *Si algún fichero no tuvo ningún cambio desde la última versión simplemente se hace un enlace al archivo anterior |
− | *Este concepto se conoce como hacer una foto | + | *Este concepto se conoce como hacer una foto instantáea de tu proyecto snapshots. |
+ | https://git-scm.com/book/en/v2/book/01-introduction/images/snapshots.png | ||
+ | |||
+ | </div> | ||
+ | <div class="slide"> | ||
*Esta es una importante diferencia con otros sistemas de gestión de versiones tipo Subversion que almacena los cambios de los fichero del proyecto en cada versión del mismo y no el fichero completo. | *Esta es una importante diferencia con otros sistemas de gestión de versiones tipo Subversion que almacena los cambios de los fichero del proyecto en cada versión del mismo y no el fichero completo. | ||
− | + | https://git-scm.com/book/en/v2/book/01-introduction/images/deltas.png | |
+ | ;Git funciona en local. | ||
+ | *Esto da mucha rapidez en las operaciones y mucha flexibilidad para trabajar. | ||
+ | *En la mayoría de otros CVS, dependemos de la red y un servidor para poder trabajar | ||
*Usar git te garantiza que puedes retornar a cualquir versión de tu proyecto en cualquier momento. Esto en mas de una ocasión te generará una sensación de alivio inigualable. | *Usar git te garantiza que puedes retornar a cualquir versión de tu proyecto en cualquier momento. Esto en mas de una ocasión te generará una sensación de alivio inigualable. | ||
+ | </div> | ||
+ | <div class="slide"> | ||
===Los tres estados de GIT=== | ===Los tres estados de GIT=== | ||
+ | *Cuando trabajamos con git, establecemos un directorio para especificar el conjunto de ficheros que queremos controlar | ||
+ | *Vamos a pensar que es el proyecto sobre el cual vamos a realizar la gestión de versión | ||
+ | *Cada fichero de ese proyecto va a tener uno de tres estados posibles (En lo que se refiere a su control con git) | ||
+ | *'''''Confirmado''''' es un estado de un fichero que ya ha sido subido a nuestro repositorio o bien que acabamos de clonar de él | ||
+ | *'''''Modificado''''' cuando un fichero es modificado en local pasa a este estado | ||
+ | *'''''Preparado''''' Es un fichero modificado y preparado para ser subido a un repositorio | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | {{Puntos clave|;Estado de cada fichero de un proyecto de git | ||
+ | ;Confirmado | ||
+ | :Fichero réplica de lo que está en el repositorio y no ha sido modificado en local | ||
+ | ;Modificado: | ||
+ | :Fichero modificado en local | ||
+ | ;Preparado: | ||
+ | :Fichero modificado en local y preparado para subir al repositorio | ||
+ | ;}}* | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ===Navegación entre los estados=== | ||
+ | [[Archivo:navegacionEstadosGit.png]] | ||
+ | <div class="slide"> | ||
+ | ===Instalando git=== | ||
+ | ;desde el repositorio | ||
+ | sudo apt-get install git | ||
+ | ;Actulizando git | ||
+ | *Desde el repositorio de git | ||
+ | git clone git://git.kernel.org/pub/scm/git/git.git | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ===Configurando git=== | ||
+ | *Ver opciones de configuracion | ||
+ | git config | ||
+ | *Ficheros de configuracion: | ||
+ | #Para todos los usuarios del sistema y todos sus repositorios '''''/etc/gitconfig''''' | ||
+ | #Para el usuario actualmente conectado en local '''''$HOME/.config/git/config''''' | ||
+ | #Para el repositorio actual ./.git/config | ||
+ | ;Configurando usuarios | ||
+ | ;nombre | ||
+ | git config --global user.name Manuel | ||
+ | ;Direccion de correo | ||
+ | git config --global user.mail ManuelRomeroMiguel@gmail.com | ||
+ | ;Editor | ||
+ | git config --global core.editor vim | ||
+ | ;Ver el valor de parámetros configurados | ||
+ | git config --list | ||
+ | ;Ver un valor concreto | ||
+ | git config <palabre> | ||
+ | git config user.name | ||
+ | ;Obtener ayuda | ||
+ | git help <palabre> | ||
+ | ===Iniciar el trabajo con git=== | ||
+ | ;Iniciar el proyecto con git | ||
+ | *En el directorio a gestionar | ||
+ | git init | ||
+ | *Ahora existe un directorio llamado .git donde está el repositorio local | ||
+ | |||
+ | ===Creando un repositorio de un proyecto=== | ||
+ | ;En el | ||
+ | |||
+ | :Ver configuracion | ||
===Instalado zsh=== | ===Instalado zsh=== | ||
− | <source lang= | + | <source lang=bash> |
#sudo apt-get install zsh | #sudo apt-get install zsh | ||
....... | ....... | ||
Línea 39: | Línea 138: | ||
The following NEW packages will be installed: | The following NEW packages will be installed: | ||
zsh zsh-common | zsh zsh-common | ||
− | |||
</source> | </source> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | |||
https://github.com/robbyrussell/oh-my-zsh | https://github.com/robbyrussell/oh-my-zsh | ||
+ | </div> | ||
+ | <div class="slide"> | ||
Es un sistema desarrollado por Torwal Linux (ver aquí su historia). | Es un sistema desarrollado por Torwal Linux (ver aquí su historia). | ||
− | *https://www.atlassian.com/git/ | + | </div> |
+ | <div class="slide"> | ||
+ | <br/> | ||
+ | {{Recursos de la Web|*https://www.atlassian.com/git/ | ||
*http://rogerdudler.github.io/git-guide/ | *http://rogerdudler.github.io/git-guide/ | ||
*http://git-scm.com/book/es/v2/ | *http://git-scm.com/book/es/v2/ | ||
+ | }} |