Tutorial Git Parte 1: Comandos básicos
Git (pronunciado «guit») es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente. Su propósito es llevar registro de los cambios en archivos de computadora y coordinar el trabajo que varias personas realizan sobre archivos compartidos. (Vía Wikipedia)

Enlaces Descarga Git
Windows https://git-scm.com/download/win
Mac https://git-scm.com/download/mac
Linux https://git-scm.com/download/linux
Comandos Básicos Git
Configuración Inicial en Git
1 2 3 4 5 6 7 8 9 |
# Set $ git config --global user.name "Michael Jackson" $ git config --global user.email michaeljackson@acme.com # Query $ git config --global user.name $ git config --global user.email git config --list |
Ayuda básica en Git
1 2 |
$ git $ git help commit |
Configuración global en Git
1 2 3 4 5 6 |
<strong>En Unix/Linux/Mac busca en:</strong> /etc/gitconfig <strong>En Windows busca en:</strong> C:\Users\%USER%\gitconfig C:\Documents and Settings\All Users\Application Data\Git\config\gitconfig |
Creación de un repositorio en Git
1 2 3 4 5 |
$ mkdir repo1 $ cd repo1 $ git init Initialized empty Git repository in /…/repo1/.git/ |
Crear un nuevo fichero en Git
1 2 3 4 5 |
$ echo Hola > ejemplo.txt $ git status Untracked files: ejemplo.txt |
Añadir fichero al control del código fuente en Git (hacer tracking)
1 2 3 4 5 |
$ git add ejemplo.txt $ git status Changes to be committed: new file: ejemplo.txt |
Hacer commit en Git
1 |
$ git commit -m 'Primer fichero' |
Clonar un repositorio en Git
1 |
$ git clone https://url.com:8443/repo1 directory |
Ver el árbol de historia
1 |
git log --all --graph --decorate --oneline --simplify-by-decoration |
Configuración de ficheros ignorados en Git
Cuando tenemos archivos que no queremos colocar bajo el control de versiones podemos hacerlo con el archivo .gitignore
Por ejemplo para ignorar ficheros .dat y todo lo que haya en el directorio results, podemos crear el archivo en el directorio raíz de nuestro proyecto:
1 |
$ nano .gitignore |
1 2 |
<em>*.dat results/</em> |
1 |
$ cat .gitignore |
Una vez creado el archivo, la salida de git status será más limpia:
1 2 3 4 5 6 |
On branch master Untracked files: (use "git add <file>..." to include in what will be committed) .gitignore nothing added to commit but untracked files present (use "git add" to track) |
Lo único que Git advierte ahora, es el archivo .gitignore recién creado. Podrías pensar que no queremos rastrearlo, pero todos aquellos con los que compartimos nuestro repositorio probablemente desearán ignorar las mismas cosas que nosotros. Vamos a agregar y a hacer commit de .gitignore.
1 2 3 |
$ git add .gitignore $ git commit -m "Add the ignore file" $ git status |
1 2 |
# On branch master nothing to commit, working directory clean |
Si quisiéramos añadir accidentalmente al repositorio archivos que no queremos rastrear .gitignore lo evitará.
1 |
$ git add a.dat |
1 2 3 |
The following paths are ignored by one of your .gitignore files: a.dat Use -f if you really want to add them. |
Si quisiéramos anular la configuración de ignorar, podemos usar git add -f para obligar a Git a añadir algo. Por ejemplo, git add -f a.dat.
También podemos ver siempre el estado de los archivos ignorados si queremos:
1 |
$ git status --ignored |
1 2 3 4 5 6 7 8 9 10 |
On branch master Ignored files: (use "git add -f <file>..." to include in what will be committed) a.dat b.dat c.dat results/ nothing to commit, working directory clean |
Clientes Gráficos (GUIs) para Git
Normalmente casi todos los desarrolladores usan entornos de ventanas para el desarrollo. Visualizar la historia de un repositorio no es nada cómodo en modo texto. Es útil saber los comandos Git, pero una interfaz gráfica simplificará mucho las cosas.
Algunos de los más famosos son:
Ciclo de vida del cambio de un fichero en Git

Estados de los ficheros en Git

Modificar el último commit en Git
Puede ser útil para ficheros o cambios olvidados.
Para corregir el último commit:
1 2 |
$ git add fichero_olvidado $ git commit --amend |
Poner cambios a Stage en Git
1 |
$git stage fichero.txt |
Deshacer cambios en Git
1 |
$ git reset HEAD fichero.txt |
Deshacer cambios y recuperar el fichero original en Git
1 |
$ git checkout -- fichero |
Deshacer el último commit en Git
Sin perder los cambios que quedan en Stage:
1 |
$ git reset HEAD~1 |
Perdiendo los cambios que quedan en Stage
1 |
$ git reset --hard HEAD~1 |
Diferencias entre ficheros en Git
A la hora de gestionar versiones de ficheros es esencial determinar qué ha cambiado en cada fichero.
En Unix existe el comando diff que permite hacer esto desde hace más de 20 años (desde que eramos chicos)
1 |
$ diff -u file1 file2 |