GIT Y GITHUB
SISTEMAS OPERATIVOS
ALEJANDRO HERNÁNDEZ ANDRADE
DIARIO
Libro o cuaderno
en el que una
persona escribe
día por día sus
vivencias o
pensamientos.
Un control de
versiones es un
sistema que registra
los cambios
realizados en un
archivo o conjunto
de archivos a lo
largo del tiempo, de
modo que puedas
recuperar versiones
específicas más
adelante.
Es un Sistema de
Control de
Versiones (Un
Software que
permite registrar
todo el historial
de cambios de un
proyecto.
Espacio o lugar
donde se guardan
ciertas cosas.
Es todo proyecto
que esta siendo
seguido por git. Es
decir, ya tiene un
historial de git
donde se están
registrando sus
cambios
Es cada uno de los
cambios registrados
en el historial de git.
• Cada Commit
debe representar
algo específico.
• Los Commits
deben ser
enviados
manualmente por
cada usuario
definiendo que se
trabajo.
Son bifurcaciones,
nuevos caminos que
toma el proyecto.
• Rama Master: Se
encuentra el
proyecto que sale al
público, no se debe
trabajar en ella.
• Rama Slave: Copia
exacta del proyecto
Master pero
separada, si se
rompe no
compromete el
proyecto, si todo va
bien, esta rama se
unifica a Master.
Copia exacta del
repositorio.
Cuando te
integras a un
equipo de trabajo
en git, lo primero
que debes hacer
es clonar el
repositorio en tu
equipo local.
Es un proyecto
completamente
diferente que se
crea a partir de
otro.
• Pueden trabajar
varias personas en
el proyecto al
mismo tiempo en
funciones
definidas.
• No necesitan un
servidor central.
• No necesitan
conexión a
internet.
• Cada desarrollador
tiene un backup
del proyecto.
Las ramas salen para
que un usuario
trabaje sin
comprometer la
rama MASTER.
Una vez que el
usuario termina su
trabajo en la rama
secundaria, este
debe FUSIONAR
(MERGE) su rama a
la rama principal
Git incluye una suma de
verificación
(CHECKSUM) a cada
archivo y commit
asegurando que cada uno
de los desarrolladores
tenga los mismos datos
que los demás.
CHECKSUM es
una función de
redundancia que detecta
cambios accidentales en
una secuencia de datos
para proteger la
integridad de estos,
verificando que no haya
discrepancias entre los
valores.
Un desarrollador
puede trabajar de
dos formas con
un proyecto:
• Crear
Repositorio.
• Clona una copia
del Repositorio
en el equipo
local.
Working Directory
Working Directory (Área de trabajo),
etapa inicial que
contiene los archivos
que estamos
trabajando en local.
Stagin Area (Área de
Preparación), es una
etapa intermedia en la
que se mantienen los
archivos que sufrieron
cambios.
Los archivos se
mandan al repositorio
Working Directory (COMMIT) una vez
que se verifica que los
cambios han sido
hechos en todos los
archivos pertinentes y
que no hay mas
modificaciones por
hacer. En esta
ejecución se debe
agregar el mensaje de
lo que se hizo en los
archivos.
Repository
Lo normal es tener dos
ramas:
• MASTER: Es el
proyecto principal.
• DEV: Rama de
MASTER y con esta
rama se debe
trabajar.
De esta rama los
desarrolladores
crearan su propia
rama para trabajar
en su asignación.
Cuando el trabajo
se complete las
ramas deben
integrarse
(MERGE).
Se debe verificar
que nada se
rompa en DEV por
los MERGES.
Cuando en DEV
todo este bien,
entonces se
integra a MASTER
y se manda a
producción.
No se entiende ni
aprende git con
una interfaz
gráfica.
La interfaz gráfica
sirven para
agilizar el trabajo
cuando ya se
entiende como
trabaja git.
Se crea una rama
remota (ORIGIN) en
la nube de nuestra
rama local (MASTER)
y sobre ORIGIN
trabajan todos los
involucrados
generando sus
propias ramas.
Flujo de trabajo Local + Remoto
Git esta integrado
en muchos
editores de
código.
INSTALACIÓN
https://git-scm.c
om/
WINDOWS
Git-2.27.0-64-bit. exe
https://git-scm.c
om/
LINUX
una terminal con permisos de ROOT:
https://git-scm.c
om/
Mac OS
En una terminal:
En una terminal:
Aparecerá una ventana de instalación,
la cual solo debemos ir dando en aceptar
Hasta que se empiece a instalar.
Mac OS
Si ingresamos nuevamente el comando
Nos debiera mostrar la versión con
la que contamos.
COMANDOS
git config --list ó -l
Muestra la configuración de
git.
git config --global Antes de iniciar
user.email “miCorreo” trabajo con git,
Asigna tu correo a la debemos
configuración de git. configurarlo,
para que nos
git config --global permita
user.name trabajarlo.
“miUsuario”
Asigna tu nombre de
usuario a la configuración
git init
Aplica a un proyecto que ya
tenemos. Hay que colocarse
dentro de la carpeta del
proyecto. La carpeta puede o no
estar vacía. Crea un
Repositorio
git init proyectoNuevo local y en
Creara la carpeta y el repositorio
en la misma. automático crea
la rama
rm -rf .git MASTER.
Elimina el repositorio en que
estas posicionado
Repositorio del Proyecto .gi
t
Muestra los
archivos que se
encuentran en
git status los estados de
git:
• Working
Directory.
• Stagin Area.
git add
nombreArchivo-
Mueve archivos
Carpeta
Mueve un archivo o carpeta.
del estado
Working
git add . Directory al
Mueve todos los archivos y estado Stagin
subcarpetas que están Area.
dentro de mi posición
actual.
git commit -m
“mensaje”
Guarda en Reporitorio todos
los archivos y carpetas del Guarda los
estado Stagin Area.
cambios en el
git commit -am Directorio.
“mensaje” COMMIT
Guarda en Repositorio los
archivos modificados del
estado Working Directory.
git log
Información relevante sobre el commit.
git log --raw
Información de los archivos o carpetas
involucradas en el commit y que se les
hizo.
Muestra la
git log --oneline bitácora de los
Información resumida en una línea de
cada commit. commits
git log --oneline -n 5 realizados.
Información resumida en una línea de
los cinco Commits más recientes.
git log --all --graph
Muestra todos los Commits de todas las
ramas con una secuencia en arból.
Mueve archivos
git rm --cached del estado
nombreArchivo- Stagin Area al
Carpeta estado Working
Mueve un archivo o carpeta.
Directory.
git rm --cached *
Mueve todos los archivos y Nota: Aplica antes
carpetas. del primer COMMIT
del repositorio.
Mueve archivos
git restore --staged
del estado
nombreArchivo-
Stagin Area al
Carpeta
Mueve el archivo indicado. estado Working
Directory.
git restore --staged *
Mueve todos los archivos y Nota: Aplica
carpetas. después del primer
COMMIT del
repositorio.
git restore
nombreArchivo-Carpeta
Deshace los cambios al archivo
indicado.
git restore *
Deshace los cambios a todos los Deshacer
archivos. Cambios en el
estado Working
git checkout Directory.
nombreArchivo-Carpeta
Deshace los cambios al archivo
indicado.
git checkout -f
Deshace los cambios archivos.
git diff nombreArchivo
Listado de diferencias de un Diferencia de
archivo.
un archivo
git diff --stat modificado
nombreArchivo contra su
Estadística de líneas último commit
afectadas. en repositorio.
Commit más
reciente
¡Viajes en el
tiempo!
Commit más
antiguo
git checkout hash
Nos mueve al commit
indicado.
Desplazamiento
git checkout en Commits.
Digitos_Representativos_
Hash
Se utilizará la
Nos mueve al commit
cabecera (HEAD)
indicado por la referencia
representativa y suficiente
del commit al que
indicada. se desea
desplazar.
git checkout master
Nos mueve al commit más
Maste
r
Ramas
Maste
Dev
r
Ramas
Maste
Dev
r
Ramas
Maste Feature
Test Dev 3
r
Ramas
git branch
Lista las ramas que hay en
un proyecto.
git branch Listado y
nombreRama Creación de
Crea la rama indicada. Ramas
git checkout –b
nombreRama
Crea la rama y se cambia a
ella.
git checkout
nombreRama
git switch Selección de
nombreRama Rama
Se cambia a la rama
indicada.
git Branch –D
nombreRama Eliminación de
Borra la rama indicada, no
Ramas
debo estar en la rama a
borrar.
Fusión de
ramas.
git merge Debes colocarte
en la rama a la
nombreRama
que le quieres
fusionar otra
rama.
Aborta un
git merge --abort MERGE que
tuvo conflictos.
Archivo que
contendrá la
lista de archivos
y carpetas que
.gitignore no deben
agregarse al
repositorio. Ej.
Archivo.txt
./documentos
mast
origin
er
.gi .gi
t t Repositorio
Remoto
git remote -v
Muestra los vínculos
remotos de mi repositorio.
git remote add origin
urlRepositorioRemoto Vincular
Vincula el repositorio local Repositorio
con el repositorio remoto
Local con
mediante la URL que lo
identifica. Repositorio
Remoto
git remote remove
origin
Elimina del repositorio local
el vínculo con el repositorio
git push -u origin
ramaAPasar
Agrega la rama local al
repositorio remoto/actualiza la
rama.
git push
Operaciones
con Ramas
git push --delete origin Remotas y
ramaABorrar Actualización
Elimina una rama remota.
de Repositorio
git push Remoto.
(git push origin rama)
Sube las actualizaciones del
repositorio local al remoto, una
vez hecha la referencia entre
ambos repositorios
git fetch
Verifica y genera reporte de
actualizaciones del repositorio remoto.
git log --oneline --all
Revisar cambios en commits remotos
vs locales
Actualización
git diff master
origin/master de repositorio
Revisar cambios de archivos remotos local.
vs locales
-------------
git pull
(git pull origin rama)
Descarga las actualizaciones del
repositorio remoto.
1. Seleccionar Repositorio
2. Settings
3. Manage Access
4. Invite a collaborator
5. Buscar y seleccionar
Colaborador
6. Add COLABORADOR to
REPOSITORIO Trabajo
7. Le llegara un correo al Colaborativo
colaborador a su cuenta
de correo registrada en
github, si está de
acuerdo, debe aceptar la
invitación.
8. ¡Listos para trabajar de
manera colaborativa! Nota
git clone Trabajo
URL_del_Repositorio_ Colaborativo
Remoto Clonación de un
Clona un repositorio remoto Repositorio Remoto.
1. ssh-keygen -t rsa
Crea una llave publica y
una llave privada local.
2. Entrar a la ruta donde se
guardan las llaves.
3. Abrir el archivo id_rsa.pub.
4. Crear una nueva llave SSH en Llave SSH
github ( menú perfil –
settings – SSH and GPG keys.
5. Copiar el contenido del
archivo id_rsa.pub en el
formulario de creación de
llave de github.
Crea etiqueta de versión en el
ultimo commit creado.
git tag -a v0.1 –m
“mensaje”
Crea etiqueta de versión en el
ultimo commit creado con más
información. Crear
Versionamiento
git tag -a v0.1 –m s con TAGS
“mensaje”
código_SHA_commit
Crea etiqueta de versión en el
commit indicado.
git show v0.1
Nota
git push origin v0.1
Subimos el tag indicado
al repositorio remoto.
Subir TAGS a
git push origin -- ORIGIN
tags
Subimos todos los tags
al repositorio remoto.
git tag d v0.2
Elimina el tag
indicado al repositorio
local.
git push Eliminar TAGS
origin
:refs/tags/v0.2
Elimina el tag
indicado del
repositorio remoto.
• https://bluuweb.github.io/tutorial-github/guia/
• https://docs.github.com/es
• https://www.youtube.com/watch?v=hWglK8nWh60&list=PLPl81lqbj-4I8i-
x2b5_MG58tZfgKmJls&index=1
• https://www.youtube.com/watch?
v=3_mf4EPRX8Y&list=PLtHf00RCv2Ff09zbTG60lmJIgVWYMzDhw
• https://www.youtube.com/watch?v=ES2xtLyI-
B8&list=PLmUnyBCRHkvUPkrsseI1SmMtYgfc-f8Kn
• https://www.youtube.com/watch?
v=zH3I1DZNovk&list=PLMQTIowvl2712bcc4NDsoqyKBUWGlidEw
• https://www.youtube.com/watch?v=j8CSUPIB8mA&list=PLvimn1Ins-43-
1sXQmGZPWLjNjPyGNi0R
• https://www.youtube.com/watch?
v=jSJ8xhKtfP4&list=PLTd5ehIj0goMCnj6V5NdzSIHBgrIXckGU&index=1
• https://www.youtube.com/watch?v=jSJ8xhKtfP4&list=PLTd5ehIj0goMCnj6V5NdzS
IHBgrIXckGU
• https://lemoncode.net/lemoncode-blog/2017/12/12/git-y-visual-studio-code