0% encontró este documento útil (0 votos)
68 vistas5 páginas

Pasaporte GitHub

El documento explica las diferencias entre Git y GitHub, describiendo que Git es la herramienta local para crear y gestionar repositorios mientras que GitHub es la plataforma en la nube para almacenar y compartir repositorios de Git. También describe las tres áreas de trabajo de Git (Workspace, Stage Area y Local Repository), cómo usar comandos como add, commit, branch y merge, y conceptos como ramificaciones y conflictos de fusión.

Cargado por

Valentina Arias
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
68 vistas5 páginas

Pasaporte GitHub

El documento explica las diferencias entre Git y GitHub, describiendo que Git es la herramienta local para crear y gestionar repositorios mientras que GitHub es la plataforma en la nube para almacenar y compartir repositorios de Git. También describe las tres áreas de trabajo de Git (Workspace, Stage Area y Local Repository), cómo usar comandos como add, commit, branch y merge, y conceptos como ramificaciones y conflictos de fusión.

Cargado por

Valentina Arias
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

Pasaporte Git & GitHub

Profesor: Domiciano Rincón Niño

Explicando cómo funciona Git


Gestores de versiones: Son sistemas que permiten
hacer seguimiento de elementos de un producto con
el fin de gestionar sus versiones
 
Hay que diferenciar que:
 Git es la herramienta que nos permite generar
y gestionar un repositorio local
 GitHub es la plataforma que almacena y
comparte el repositorio que tenemos de forma
local

Registro
Es importante registrarse en Git con las
respectivas credenciales de GitHub usando los
siguientes comandos:
 

GIT WORKAREAS
Git posee tres áreas de trabajo:
1. El Workspace es donde todos
nuestros archivos se encuentran de
forma local en un equipo.
2. El Stage Area es el intermediario
que enlista todos los cambios
realizados en los archivos que
forman parte del WorkSpace.
3. El Local Repository posee todo el
sistema de versiones de nuestro
proyecto para finalmente poder
alojarse en algún remote determinado.

Cuando se escribe el comando git add, en el Stage Area se registran todos los cambios
realizados en los archivos que forman parte del WorkSpace Local.
Cuando finalmente se realiza un commit, lo que realmente se hace es confirmar todos los
cambios realizados y finalmente se crea un nuevo punto de acceso para el repositorio.
Remotes
Un remote es la conexión entre el repositorio Local (Git) y el repositorio Remoto (GitHub).
Podemos tener tantos remotes que queramos y se añaden de la siguiente manera:

/ubicacionRepositorio/> git remote add referencia <url>

1. EL comando git remote gestiona todas las funciones y herramientas de un remote.


2. El comando add crea un remote entre nuestro repositorio local y un servidor remoto.
3. La referencia es el nombre que distingue al remote. Se puede poner cualquiera, pero
por lo general, el remote origin es el principal del proyecto.
4. El url es la dirección en donde nuestro servidor remoto se encuentra alojado.

COMANDOS DE LA SECCION
 ls/dir: Con este comando podemos ver que archivos hay dentro de una carpeta.

 add: Con este comando podemos poner un y muchos archivos en seguimiento. SI


queremos añadir el contenido que este en toda una carpeta, escribimos git add
nombreCarpeta/*

 checkout: Es un comando en el que puedes navegar en el tiempo. Podemos devolvernos


al último commit con solo usar el comando, aunque si quieres acceder a un commit en
especial, simplemente escribes el comando y la referencia del commit.

 checkout <ID commit> -- <nombredelarchivo>: Es un comando compuesto que nos sirve


para recuperar un archivo en especifico en el tiempo. Si borramos un archivo en el tercer
commit, en el ultimo commit podemos recuperarlo limpiamente usando este commit.

 log: Muestra el registro de todos los commits REMOTOS de nuestro proyecto junto a sus
metadatos.

 reflog: Muestra el registro de todos los commits LOCALES de nuestro proyecto junto a sus
metadatos. Es de suma importancia este comando ya que se puede acceder a todos los
commits realizados localmente, asi estos hayan sido reseteados o revertidos.

 log --oneline: Muestra un registro de todos los commits del repositorio con su nombre y
referencia remota.

 revert: Es la herramienta perfecta para poder localizar errores y comparar en tiempo real
las diferencias entre un commit y otro. Este comando devuelve el código que ha sido
cambiado entre el estado actual del programa y un commit específico. Por ejemplo, tengo
tres commits, en donde en el primero el programa funcionaba, pero el ultimo no. Este
comando nos trae de vuelta las modificaciones entre el primer commit y el tercero, para
preguntarnos si nos quedamos o no con ellas.

 .gitignore: Es un archivo git que contiene los nombres de los archivos o carpetas que no
queremos que tengan un seguimiento de cambios en nuestro repositorio. Para esto, creo
un archivo .gitignore y escribo el archivo que no quiero que tenga seguimiento. Si quiero
añadir una carpeta, simplemente escribo el nombre de la carpeta entre slashes, por
ejemplo, /carpeta/.

Cuando el archivo YA hace parte del repositorio, debemos REMOVER la referencia del
archivo. Por lo tanto, hay que usar el comando <git rm –cached referencia>. Ya una vez
removido el archivo, lo podemos poner en la lista de archivos ignorados.

 reset: Nos permite "eliminar" el registro de commits REMOTOS visibles. Sin embargo,
siempre podremos acceder a cualquier commit usando el comando reflog y accediendo a
la referencia de metadato del commit. 

RAMIFICACIONES
Las ramificaciones permiten dividir las tareas de un grupo de desarrollo y permite que cada
integrante pueda trabajar cómodamente y fusionar su trabajo junto a sus compañeros.

ROLES DE RAMAS Principales


1. La rama máster es la más importante y protegida,
todos los commits deben tener lanzamientos
funcionales. Esta debe estar ordenada por
Tags/versiones funcionales.
2. La rama develop es la rama de los cambios y los
errores. Aquí debemos hacer los merges de las
ramas features.
3. Las ramas features son las divisiones de las ramas
develop y corresponden a la actividad asignada a
cada programador del equipo.

Roles de ramas opcionales


1. La rama hotfix es una rama en donde se
reparan errores que hayan sucedido en la
rama máster. Esta rama esta próxima a
máster ya que estos errores se deben
reparar en el menor tiempo posible.
Además, tanto para la rama máster como
para develop deben tener un merge de
esta rama una vez se hará reparado.
2. La rama release una rama en donde se
realiza el testing de la rama develop. Este
proceso se puede hacer directamente
desde develop pero algunos equipos de
trabajo prefieren dividir estas dos etapas

Merge
El trabajo que se realice en cada una de las ramas no se va a ver reflejado en la rama máster o
develop si no se fusionan los cambios. Esta acción se llama merge, y toma los dos últimos
commits y los fusiona para agregar todos los cambios a una rama superior.

Tipos de Merge
 Fast-Forward es un recorrido lineal. Es decir, que entre el máster y un Branch se puede
realizar un recorrido lineal sin omitir algún commit
 Recursive es un recorrido distinto. El historial no es lineal, la rama máster tiene commits
que quedan omitidos si realizamos un recorrido lineal.

¿Qué sucede cuando se modifican los mismos archivos en dos ramas


distintas?
Cuando dos ramas distintas modifican un mismo archivo, estos cambios no se fusionan
directamente, sino que se genera un conflicto que debe ser resuelto antes de poder realizar
el commit.
Para solucionar un merge con conflictos, un editor de texto mostrará cada uno de los cambios
realizados y solicitará que elija cuales cambios se quedaran y cuales se desharán.

COMANDOS DE LA SECCION
 git log –oneline –graph Muestra un mapa en ASCII de las distintas ramas y commits que
existen en el repo
 git branch: Genera un listado de todas las ramas existentes en el repositorio
 git branch < branchname > : Crea una nueva rama con el branchname.
 git push <remote-name> <branchname>: Lanza nuestra rama local a nuestro repositorio
remoto.
 git checkout < branchname >: Se mueve a la rama branchname.
 git branch -a Muestra en que rama se está trabajando.
 git branch -d < branchname >: Elimina el Branch especificado (Esto es cuando ya no
necesitamos un Branch y ya hicimos merge)
 git push origin - - delete < branchname >: Elimina el branch de manera remota. Es decir,
si la rama ya esta subida, esto permite eliminarla remotamente.
 git merge < branchname > -m "Descripción" : Fusiona los últimos dos commits del
Branch. Para esto, se debe ubicar en la rama de destino y escribir el comando junto con
una descripción del commit.
 git checkout -b < branchname >: Crea una rama y se ubica en ella
 git fetch: actualiza las ramas del repositorio
 git diff –name—only –diff-filter=U: Es un listado de los archivos que tienen conflictos

o git checkout < branchname > : Descarga la nueva rama.

Glosario
Conceptos Importantes:
 
 Untracked File: Es un archivo que aún no está siendo seguido. Por así decirlo, es un archivo
que puede que forme parte física de mi proyecto, pero aún no forma parte de mi
repositorio.

 Commit: Es un "CheckPoint". Técnicamente es un punto de acceso a una versión en


específico de mi repositorio.
 
 

También podría gustarte