Diferencia entre revisiones de «Usuario:ManuelRomero/Git»

De WikiEducator
Saltar a: navegación, buscar
(Instalado zsh)
 
(14 revisiones intermedias por el mismo usuario no mostrado)
Línea 2: Línea 2:
 
<div class="slides layout-regular template-default">
 
<div class="slides layout-regular template-default">
 
<div class="slide">
 
<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===
<br/>
+
[[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 *concreta.
+
*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>
 
<div class="slide">
 
<div class="slide">
 
;Ventajas
 
;Ventajas
*Recupear el conjunto de fichero (1 0 más) de una versión concreta
+
*Recupear el conjunto de ficheros (1 0 más) de una versión concreta.
*Ânalizar los cambios realizados entre dos versiones
+
*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 quíen y cuándo ha realizado cambios
+
*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>
 
<div class="slide">
 
<div class="slide">
Línea 22: 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>
 
<div class="slide">
 
<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 algán fichero no tuvo ningún cambio desde la última versión simplemente se hace un enlace al archivo anterior
+
*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 instantánea de tu proyecto '''''snapshots'''''.
+
*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>
 
<div class="slide">
 
<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.
*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
+
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>
 
<div class="slide">
 
<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=shell>
+
<source lang=bash>
 
#sudo apt-get install zsh
 
#sudo apt-get install zsh
 
.......
 
.......
Línea 65: Línea 151:
 
<div class="slide">
 
<div class="slide">
 
<br/>
 
<br/>
[[Recursos en la web|*https://www.atlassian.com/git/
+
{{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/
]]
+
}}

Última revisión de 22:14 12 feb 2019

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).
  • 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
Ventajas
  • 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 quién y cuándo ha realizado cambios.
  • En general controlar la evolución del proyecto.
Git como un sistema descentralizado
  • Centralizado Vs Descentralizado
Sistema centralizado
SistemaCentralizado.png
  • Todas las operaciones se hacen sobre un servidor
Sistema descentralizado
  • Las operaciones las hacemos sobre un local (En local tenemos que tener un repositorio).
  • 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

GitDescentralizado.png

Funcionamiento de Git

  • Funciona como un sistema descentralizado
  • Cada vez que guardamos cambios hace una copia del proyecto tal cual está
  • 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 instantáea de tu proyecto snapshots.
https://git-scm.com/book/en/v2/book/01-introduction/images/snapshots.png
  • 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.

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


Icon key points.gif

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

Navegación entre los estados

NavegacionEstadosGit.png

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

Configurando git

  • Ver opciones de configuracion
git config 
  • Ficheros de configuracion:
  1. Para todos los usuarios del sistema y todos sus repositorios /etc/gitconfig
  2. Para el usuario actualmente conectado en local $HOME/.config/git/config
  3. 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

#sudo apt-get install zsh
.......
 
The following extra packages will be installed:
  zsh-common
Suggested packages:
  zsh-doc
The following NEW packages will be installed:
  zsh zsh-common

Es un sistema desarrollado por Torwal Linux (ver aquí su historia).