Diferencia entre revisiones de «Gestión de versiones con Git»

De Wiki de EGC
Saltar a: navegación, buscar
(Introducción histórica: referencia a bitkeeper)
(Órdenes básicas: arreglar apariencia de órdenes de ejemplo)
Línea 9: Línea 9:
 
* ''init'', para iniciar un repositorio, dentro de la carpeta en la que se quiere realizar la gestión de versiones.
 
* ''init'', para iniciar un repositorio, dentro de la carpeta en la que se quiere realizar la gestión de versiones.
  
<syntaxhighlight lang="c">
+
<source lang="c">
 
git init
 
git init
</syntaxhighligh>
+
</source>
  
 
Esto crea una carpeta de control .git, con toda la metainformación necesaria para que git sea operativo.
 
Esto crea una carpeta de control .git, con toda la metainformación necesaria para que git sea operativo.
Línea 17: Línea 17:
 
* ''status'', permite saber el estado en el que se encuentra el repositorio.
 
* ''status'', permite saber el estado en el que se encuentra el repositorio.
  
<syntaxhighlight lang="c">
+
<source lang="c">
 
git status
 
git status
 
# On branch master
 
# On branch master
Línea 25: Línea 25:
 
#      ejemplo.py
 
#      ejemplo.py
 
nothing added to commit but untracked files present (use "git add" to track)
 
nothing added to commit but untracked files present (use "git add" to track)
</syntaxhighlight>
+
</source>
  
 
* ''add'', para añadir ficheros y contenido que se pretende versionar:
 
* ''add'', para añadir ficheros y contenido que se pretende versionar:
  
<syntaxhighlight lang="c">
+
<source lang="c">
 
git add ejemplo.py
 
git add ejemplo.py
</syntaxhighligh>
+
</source>
  
 
Tras esto ''status'' indica:
 
Tras esto ''status'' indica:
  
<syntaxhighlight lang="c">
+
<source lang="c">
 
# On branch master
 
# On branch master
 
# Changes to be committed:
 
# Changes to be committed:
Línea 41: Línea 41:
 
#
 
#
 
#      new file:  ejemplo.py
 
#      new file:  ejemplo.py
</syntaxhighlight>
+
</source>
  
 
* ''commit'', para aplicar los cambios. Requiere un mensaje en el que la primera línea está reservada al título y las siguientes a la descripción. No envía ningún tipo de información por la red.
 
* ''commit'', para aplicar los cambios. Requiere un mensaje en el que la primera línea está reservada al título y las siguientes a la descripción. No envía ningún tipo de información por la red.
  
<syntaxhighlight lang="c">
+
<source lang="c">
 
git commit -a
 
git commit -a
</syntaxhighlight>
+
</source>
  
 
La opción ''-a'' sirve para indicar que se añada también todo lo pendiente de cambios (ficheros modificados).
 
La opción ''-a'' sirve para indicar que se añada también todo lo pendiente de cambios (ficheros modificados).
Línea 57: Línea 57:
 
* ''clone'', genera un repositorio copia de otro repositorio de origen (puede tratarse de un repositorio remoto disponible en un servidor, aunque no necesariamente).
 
* ''clone'', genera un repositorio copia de otro repositorio de origen (puede tratarse de un repositorio remoto disponible en un servidor, aunque no necesariamente).
  
<syntaxhighlight lang="c">
+
<source lang="c">
 
git clone git://git.netfilter.org/iptables
 
git clone git://git.netfilter.org/iptables
</syntaxhighligh>
+
</source>
  
 
= Diferencias entre git y subversion =
 
= Diferencias entre git y subversion =

Revisión del 11:30 15 oct 2013

Git es un sistema de versiones inicialmente diseñado y desarrollado por Linus Torvalds con el fin de ofrecer un sistema de versiones distribuido y eficiente para el núcleo de Linux, empleado hoy día en los populares sistemas operativos Android y Ubuntu.

Introducción histórica

Git fue elaborado para reemplazar a Bitkeeper, un sistema de versiones no libre que se empleaba para la gestión de versiones del núcleo de Linux.

Órdenes básicas

  • init, para iniciar un repositorio, dentro de la carpeta en la que se quiere realizar la gestión de versiones.
git init

Esto crea una carpeta de control .git, con toda la metainformación necesaria para que git sea operativo.

  • status, permite saber el estado en el que se encuentra el repositorio.
git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       ejemplo.py
nothing added to commit but untracked files present (use "git add" to track)
  • add, para añadir ficheros y contenido que se pretende versionar:
git add ejemplo.py

Tras esto status indica:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:   ejemplo.py
  • commit, para aplicar los cambios. Requiere un mensaje en el que la primera línea está reservada al título y las siguientes a la descripción. No envía ningún tipo de información por la red.
git commit -a

La opción -a sirve para indicar que se añada también todo lo pendiente de cambios (ficheros modificados).

  • push, envía los cambios acumulados al repositorio de origen (puede tratarse de un repositorio remoto disponible en un servidor, aunque no necesariamente).
  • pull, recupera los cambios acumulados en un repositorio (puede tratarse de un repositorio remoto disponible en un servidor, aunque no necesariamente).
  • clone, genera un repositorio copia de otro repositorio de origen (puede tratarse de un repositorio remoto disponible en un servidor, aunque no necesariamente).
git clone git://git.netfilter.org/iptables

Diferencias entre git y subversion

Las dos principales diferencias son:

  • git permite configuraciones completamente distribuidas, mientras que subversion sólo permite configuraciones centralizadas.
  • git no requiere conectividad permanente a la red.

Para los que están familiarizados con subversion, está disponible la siguiente documentación en el que se muestran las principales diferencias Git - SVN Crash Course.