Guía Git en español
Git no puede faltar en la lista imprescindible de herramientas útiles para todos los desarrolladores web.
Git es, de hecho, una herramienta indispensable para todo desarrollador porque hace que el flujo de trabajo sea más organizado y facilita la cooperación de los desarrolladores web en la realización de proyectos. Pero, ¿cómo funciona Git?
¡Averigüémoslo juntos!


Lo que vas a aprender
En esta guía, descubrirás qué es Git, el sistema de control de versiones esencial para organizar el flujo de trabajo y para la cooperación de los desarrolladores web, y cómo usarlo mejor dominando cada función.
- Introducción a Git para developers
- Tu primer commit en Git
- Terminología y conceptos de Git
- Crear y configurar un repository en Git
- Guardar cambios en Git
- Consultar el estado en Git
- Deshacer cambios en Git
- Reescribir la history en Git
- Acceso directo a comandos frecuentes en Git
- Introducción a los repository "remote" en Git
- Sincronizar cambios locales y remotos en Git
- Uso de los branch en Git
- Resolver conflictos de merge en Git
- Git workflow y estrategias de branching en Git
- Convenciones sobre commit message y tag en Git
- Merging vs rebasing en Git
1
Introducción a Git para developers

1¿Qué es Git?
Git es un sistema de control de versiones gratuito y open-source (version control system o VCS, a veces también denominado source control management system o SCM), creado por Linus Torvalds (el "padre" de Linux) en 2005. Como cualquier control de versiones system, Git te permite gestionar el historial de todos los cambios realizados en tu códig...
Sigue leyendo
2Nacimiento de Git
Pero, ¿cómo nació Git? El "nacimiento" de Git está relacionado, como sucede a veces en el mundo del open-source, a la necesidad de tener una alternativa libre a una herramienta propietaria. En 2005, el desarrollo del kernel de Linux había alcanzado, en términos de líneas de código, un tamaño considerable y los di...
Sigue leyendo
3Principales características de Git
La historia del nacimiento de Git nos permite entender cuáles son las principales características de esta herramienta. Como sistema de control de versiones, el propósito de Git es permitir la gestión de los cambios realizados en una colección de información, ya sea el código fuente de una aplicación, la p&aacu...
Sigue leyendo
4Línea de comando UI en Git
Git nació como una herramienta para ser utilizada desde la línea de comandos (o terminal), por lo tanto, junto con otras herramientas necesarias en el día a día de un desarrollador web, como editores, IDE, compiladores... etc. Desde la línea de comando, el ejecutable de Git permite ejecutar uno de los varios comandos disponibles, pasando la...
Sigue leyendo
2
Tu primer commit en Git

5Cómo instalar Git
Antes de entrar en detalles sobre cada uno de los diversos comandos que ofrece Git, intentemos usar un conjunto mínimo de comandos útiles en la vida cotidiana. Cómo instalar Git Es posible que en tu ordenador esté ya instalado Git, ya que forma parte del conjunto de aplicaciones y herramientas que suelen instalarse como paquete para los desarrolladores web de...
Sigue leyendo
65 comandos Git para desarrolladores individuales
Como hemos ya mencionado, Git es un excelente aliado tanto para el trabajo del singular desarrollador como para la cooperación de equipos de desarrolladores web. Ahora veamos los 5 comandos principales que usará el desarrollador individual y algunos de sus argumentos. crear una nueva directory en Git mkdir primer-proyecto entrar en la directory en Gi cd ...
Sigue leyendo-cover-thumb.jpg)
75 comandos Git para desarrollar en colaboración
Como hemos ya anticipado, una de las fortalezas de Git es su soporte para el desarrollo de proyectos distribuidos. Si bien Git ofrece varias posibilidades para administrar el desarrollo colaborativo, vamos a intentar presentar el caso de un desarrollador web que quiere hacer su contribución a un proyecto compartido que ya comenzó, analizando aquí también los comand...
Sigue leyendo
3
Terminología y conceptos de Git

8Repository en Git
Antes de entrar en más detalles, es recomendable aclarar algunos conceptos básicos de Git y cómo afectan el flujo de trabajo real. Repository en Git Un repository Git rastrea y guarda el historial de cambios realizados en los archivos en el directory donde se inicializó el repository. En la práctica, el repository Git del proyect...
Sigue leyendo
9Commit en Git
Un commit in Git representa un snapshot (instantánea) del repository en un momento específico. Aunque esta definición puede parecer banal, vale la pena subrayar que: a diferencia de otras version control system, el commit en Git no solo almacena las diferencias entre dos versiones sucesivas del contenido del directory, sino que guarda la instant&aacut...
Sigue leyendo
10Working Copy en Git
El concepto de Working Copy en Git (llamado también working directory o working tree) está relacionado con el hecho de que un repository Git gestiona la secuencia de snapshot (commits) de determinados archivos contenidos en un directory. Para entender que es y como funciona la working copy es mejor si lo vemos con un ejemplo: Cuando se cl...
Sigue leyendo
11Staging Area en Git
La staging area en Git es el lugar "virtual" para agregar los cambios presentes en la working copy que se desea guardar como un commit. También para el staging area en Git cabe considerar que es un concepto ligado al funcionamiento básico de Git (secuencia de snapshot extraídas a lo largo del tiempo en una working area). Muy a menudo, de hecho, n...
Sigue leyendo
12Branch en Git
Hemos dicho anteriormente que Git compara los archivos presentes en la working copy con respecto al commit de la que se extrajeron para comprender en qué estado se encuentran. Sin embargo, con mayor frecuencia oiremos (y comenzaremos a decir también) que cualquier cambio en la working copy es con respecto al branch en el que estoy trabajando. Tratemos de aclarar esto: ...
Sigue leyendo
13Remote en Git
El último concepto básico a aclarar es el de Remoto(s) en Git, entendido en el sentido de un repository remoto al que mi repository local está conectado de alguna forma. Hemos visto que podemos copiar un repository preexistente en un servidor remoto a nuestra máquina usando git clone. Cuando git clone crea la copia local, también guarda ...
Sigue leyendo
4
Crear y configurar un repository en Git

14Inicializar un nuevo repository con git init
En esta sección, profundizaremos en cómo configurar un repository de Git. En particular, veremos cómo inicializar un repository para un proyecto nuevo o existente. Inicializar un nuevo repository con git init git init es el comando que hay que usar para realizar el setup inicial de un repository. Ejecutar este comando crea el subdirectorio .gi...
Sigue leyendo
15Crear una copia de un repository remoto en Git con git clone
git clone es el comando que se utiliza para crear una copia o clonación de un repository ya existente, en particular disponible a través de una conexión de red. La clonación de un repository remoto en la máquina local es una operación única; una vez realizada la copia local, ya no es necesario ejecutar git clone (veremos más...
Sigue leyendo
16Configurar las opciones de Git con git config
El comando git config permite establecer algunos valores predeterminados que luego serán utilizados por los otros comandos de Git. Estos valores pueden ser globales (es decir, válidos para todos los repository de git en tu ordenador) o por repository (es decir, aplicados solo al repository en el que estás trabajando). El uso más simple de&nbs...
Sigue leyendo
5
Guardar cambios en Git

17El comando Git add en Git
Cuando se trabaja con un version control system como Git, el concepto de "guardar cambios" tiene más matices que guardar un archivo en un procesador de textos o editor de archivos. Ya hemos visto cómo en Git la acción "guardar" se puede lograr a través de un compromiso. Veamos con más detalle todos los comandos út...
Sigue leyendo
18El comando Git commit en Git
El comando git commit fija en la historia del proyecto un snapshot del estado actual, es decir, una versión "segura" o relevante" del mismo proyecto. Los cambios incluidos en el guardado son aquellos que se han incluido explícitamente en la staging area a través del comando git add. Si se ejecuta sin opciones, se abre un editor de texto (configurabl...
Sigue leyendo
19El comando Git diff en Git
git diff es un comando Git multiuso que permite ver las diferencias entre dos data source, ya sean archivos, commit, branch u otros. En esta sección, veremos los usos más típicos de git diff y explicaremos el formato estándar en el que se muestran estas diferencias. Aquí hay un ejemplo práctico usando un repositorio creado desde cero: $ mkdir ...
Sigue leyendo
20El comando Git stash en Git
El comando git stash se usa para dejar de lado todos los cambios actuales no confirmados, para recuperarlos en un momento posterior. En la práctica, se utiliza en todas aquellas ocasiones en las que se han realizado una serie de cambios "WIP" (work in progress), aún no es momento de comprometerse, pero es necesario volver temporalmente a una situación "...
Sigue leyendo
21.gitignore : los archivos ignored en Git
Anteriormente hemos visto que Git considera los archivos presentes en la working copy distinguiéndolos en tracked (archivos que se han enviado al repository o incluidos en el staging area) y untracked (lo opuesto al anterior). A estos dos grupos podemos añadir un tercero, los archivos ignored, es decir, los archivos para los que Git ha sido expresamente i...
Sigue leyendo
6
Consultar el estado en Git

22El comando Git status en Git
El comando git status muestra el estado actual de la working directory y de la staging area, permitiendo ver que archivos modificados se han añadido a la staging area, que archivos modificados no han sido añadidos a la staging area y que archivos no se rastrean en el repository. El output de git status es uno de los más ricos de informaci&...
Sigue leyendo
23El comando Git log en Git
El comando git log permite visualizar el historial de los commit, filtrarlo y buscar cambios específicos. Así como git status opera en la working directory y la staging area, git log opera en la history de los commit. Git log ofrece muchas opciones para personalizar las visualizaciones de los commit y para filtrarlas. A continuación, ...
Sigue leyendo
24El comando Git tag en Git
Git permite agregar una etiqueta a un commit específico, de modo que se pueda usar esta etiqueta como referencia para un punto específico en el historial del repository. El uso típico de las etiquetas es marcar un determinado lanzamiento o versión, para poder acceder a ella más tarde con facilidad. De hecho, a diferencia de los branch, una vez que ...
Sigue leyendo
25El comando Git blame en Git
Para concluir con el elenco de los comando útiles en Git para consultar el estado y la historia de un repository encontramos en comando git blame. La traducción literal del verbo "to blame" es "inculpar" y, de hecho, este comando git se usa para responder a la pregunta "¿quién ha cambiado esta línea?" Es útil en el cas...
Sigue leyendo
7
Deshacer cambios en Git

26El comando Git checkout en Git
Git no ofrece funciones de "deshacer" similares a las de programmi consumer, pero ofrece diferentes comandos que permiten volver sobre sus pasos y administrar la secuencia de commit en la historia como si fuese una máquina del tiempo. El comando Git checkout en Git Sabemos que Git almacena una serie de snapshot de un proyecto llamados commit, cada commit tiene su propio iden...
Sigue leyendo-cover-thumb.jpg)
27El comando Git revert en Git
El comando git revert in Git permite "eliminar" un cambio no deseado del repository. Sin embargo, dado que Git está diseñado para preservar el historial de un proyecto y la integridad del historial de revisiones, el comando revert funciona agregando un nuevo commit que es exactamente lo contrario del commit que se desea eliminar. Supongamos que tenemo...
Sigue leyendo
28El comando Git reset en Git
De manera similar al anterior, el comando git reset en Git permite deshacer los commit de un repository, pero lo hace destructivamente. En particular, git reset puede operar en el historial de los commit, por lo tanto, permite modificar el historial de un branch específico. Es un comando que debes usar con cuidado si no quieres perder parte de tu trab...
Sigue leyendo
29El comando Git rm en Git
El comando git rm en Git se usa para indicar a Git que elimine un archivo del seguimiento; es el comando opuesto y complementario a git add. Obviamente, en virtud de cómo funciona Git, siempre será posible acceder a las distintas versiones del archivo consultando los diversos compromisos en los que ese archivo aún estaba incluido entre los incluidos en ...
Sigue leyendo
8
Reescribir la history en Git

30La opción Git commit –amend en Git
Hemos dicho varias veces que el objetivo principal de Git es evitar la pérdida en un cambio de commit (es decir, guardado en el historial). Por otro lado, Git también está diseñado para ofrecer el control más completo sobre tu workflow de desarrollo, incluida la capacidad de definir exactamente el historial de tu proyecto. Tomemos, por ejemplo, este histo...
Sigue leyendo
31Git rebase –interactive en Git
Una aclaración: el uso del comando git rebase en Git que veremos en esta sección se centrará únicamente en la posibilidad que ofrece de modificar uno o más commit más antiguos que el último guardado, es decir, la ejecución en modo interactive. Veremos el modo estándar de git rebase (y lo que realmente significa) en otro...
Sigue leyendo