Usuario:ManuelRomero/Git

De WikiEducator
Saltar a: navegación, buscar

Qué es Git

LogoGit.png


Icon define.gif

Definición

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.


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).
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

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


Ver configuracion

Instalado zsh

Idioma no válido.

Necesita especificar un idioma como esto: <source lang="html4strict">...</source>

lenguajes soportados para sintaxis remarcada:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


#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).