Fundamentos de GIT
Creado por GncDev
para explicar fundamentos de Sistemas operativos
.
Se llama control de versiones a la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo
Antes de comenzar a usar Git, debe hacerlo disponible en su computadora. Incluso si ya está instalado, probablemente sea una buena idea actualizar a la última versión.
- Habilitar virtualización por hardware sino esta habilitado.
- Activar plataforma Hyper-V para virtualización.
- Activar el subsistema Linux para Windows.
- Instalar windows Terminal de Microsoft.
- Elegir una distribución compatible con desarrollo remoto.
Nota: Versiones superiores a Windows 10.19041 y Windows 11.22621
# Habilitar Hyper-V en windows 10
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
pause
# Activar WSL
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
# Lista de las distribuciones de Linux disponibles
wsl --list --online
- Instalar subsistema Linux para Windows.
- Instalar distribución de Linux elegida.
- Instalar y configurar nano en WSL.
# EN POWERSHELL DE WINDOWS
# ------------------------
# Instalar WSL
# El comando --install realiza las acciones siguientes:
# * Habilita los componentes opcionales de WSL.
# * Descarga e instala el kernel de Linux más reciente.
# * Establece WSL 2 como valor predeterminado.
# * Descarga e instala la distribución de Ubuntu Linux.
wsl --update
wsl --install
# Nota: es posible que sea necesario reiniciar.
# EN BASH DE WSL
# --------------
# * Mantener la distribución WSL actualizada.
sudo apt update && sudo apt upgrade
# * Instalar nano.
sudo apt install nano
# * Prueba la siguiente tubería en el subsistema Linux
# notar que combina comandos de win32 y comandos de WSL. (poderoso)
ipconfig.exe | grep -a IPv4 | cut -d: -f2
# * Obtener el shell que se esta ejecutando en wsl
echo $SHELL
# EN POWERSHELL DE WINDOWS
# ------------------------
# * Prueba la siguiente tubería de comandos en Windows y comunica el resultado a WSL
ipconfig | wsl grep -a IPv4 | wsl cut -d: -f2
wsl lsb_release -a
- Recomendamos instalar Git en Linux o dentro de WSL (git nativo)
- Eliminar versiones antiguas de Git incluidas en la distribución.
- Agregar repositorio oficial de los mantenedores de Git.
- Actualizar lista de paquetes.
- Instalar la ultima version de Git.
- Agregar un
usuario
y uncorreo
globalmente para Git.
# Eliminar versiones antiguas de GIT
sudo apt remove git
# Agregar repositorio PPA
sudo add-apt-repository ppa:git-core/ppa -y
# Actualice su sistema
sudo apt update && sudo apt install git-all -y
# Verifique la versión desde WSL
git --version
# Verifique la versión desde la terminal de windows
wsl git --version
# Para agregar usuario y correo globales a GIT
git config --global user.name "GncDev"
git config --global user.email gncdev@dominio.com
# Para agregar usuario empresarial a un solo repositorio
git config user.email gncdev@empresa.com
# Para verificar las configuraciones añadidas
git config -l
- Crear una cuenta en GitHub.
- Crear una clave publica en wsl.
- Registra la clave publica en Github.
- Crear un repositorio nuevo en github.
- Clonar este repositorio desde wsl.
# Verifique que SSH funcione correctamente
# Verifique la version de ssh y openssl version
apt list openssh-client
# Instale un cliente SSH
sudo apt update && sudo apt install openssh-client
# Verifique el agente tiene un identificador de proceso asociado
ps -C ssh-agent
# Verifique que existen las variables de entorno necesarias $SSH_AGENT_PID, $SSH_AUTH_SOCK
echo $SSH_AGENT_PID $SSH_AUTH_SOCK
env | grep -i ssh
# Si no se esta ejecutando inicie el ssh-agent in background
eval $(ssh-agent -s)
# Crear un par de claves para ssh (publica:privada)
# Crear un directorio oculto en la carpeta de usuario de wsl </home/user>
mkdir ~/.ssh && cd ~/.ssh
# Generar un par de llaves para usar con github
# -C "gncdev@dominio.home" :para agregar un comentario al final de la llave
# -f id_ed25519 :para agregar un nombre al archivo
# sever_name=file=github, pass=***
ssh-keygen -t ed25519 -f id_ed25519 -C "gncdev@dominio.home"
# Agregue la clave privada al agente ssh
ssh-add ~/.ssh/id_ed25519
# Copie el contenido de la clave púbica y agréguelos a las claves en github
cat ~/.ssh/id_ed25519.pub | clip.exe
# Probar SSH con el repositorio remoto (sin usuario y contraseña)
git clone git@github.com:GiancarloBenavides/Git-Course.git
Nota: para ir a la pagina y agregar las claves SSH en github visita el siguiente enlace
# Si tiene problemas para conectarse a github por SSH
# Verifique que no existen multiples agentes ejecutándose
echo $SSH_AGENT_PID
ps -C ssh-agent
# Elimine los agentes que no coincidan con la variable $SSH_AGENT_PID
kill -9 {PID}
# Verifique que la clave privada se agrego al agente ssh
ssh-add -l
# Verifique que las URL remotos están agregados
git remote -v
# Verifique la conexión con github
ssh -vT git@github.com
# Verifique la conexión con el repositorio
git fetch
# Crear un repositorio y enviar cambios
mkdir ~/repositorio && cd ~/repositorio
git init
echo "Repositorio de prueba" > README.MD
git add .
git commit -m "feat: readme initial commit"
git remote add origin git@github.com:GiancarloBenavides/repositorio
git push origin master
# Recuerde que puede gestionar git desde windows anteponiendo wsl
# log de los últimos 10 commits en formato de una linea
wsl git log -10 --oneline
- Instalar visual studio code en Windows.
- Agregar abrir con code a los menus contextuales.
- Agregar code al PATH code a los menus contextuales.
- Instalar extensión WSL o el paquete para desarrollo remoto.
- Conectar el editor code con wsl.
Antes de comenzar a usar Git, debe hacerlo disponible en su computadora; Incluso si ha instalado la version compatible de git para windows, probablemente sea una buena idea actualizar a la última versión.
- Instalar corrector ortográfico.
- Instalar diccionario español.
- Instalar indentación en colores.
- Instalar la extension de GitHub para VScode.
- Instalar la extension wsl para desarrollo remoto.
- Instalar la extension iconos para desarrollo remoto.
- Abrir el repositorio remoto (en WSL) desde VScode.
- Puedes configurar Git para que ignore archivos que no quieres indexar.
- No se hará seguimiento (versionado) de estos archivos o carpetas.
- No se enviaran al repositorio remoto los cambios realizados en estos archivos.
- Cree un archivo .gitignore en el repositorio desde VSCode.
- Incluir los patrones a ignorar en el archivo .gitignore.
# VS Code files for those working on multiple tools
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
- Usar la especificación Commits Convencionales para nombrarlos.
- Personalizar el prompt de la terminal de wsl
ls -hal /usr/share/git-core/contrib/
find / -type d -name 'httpdocs'
sudo nano -l /usr/lib/git-core/git-sh-prompt
- Hyper-V (Wikipedia)
- GIt Book (Git-scm)
- Reference (Git-scm)
- Video-curso (YouTube)