Introducción al uso de Git en Subsistema de Windows para Linux

Git es el sistema de control de versiones más utilizado. Con Git, puede realizar un seguimiento de los cambios realizados en los archivos, por lo que tiene un registro de lo que se ha hecho y tiene la capacidad de revertir a versiones anteriores de los archivos si es necesario. Git también facilita la colaboración, lo que permite que los cambios de varias personas se combinen en un origen.

Git se puede instalar en Windows Y en WSL

Una consideración importante: al habilitar WSL e instalar una distribución de Linux, va a instalar un nuevo sistema de archivos, separado de Windows unidad NTFS C:\ en la máquina. En Linux, las unidades no tienen letras. Tienen puntos de montaje. La raíz del sistema de archivos / es el punto de montaje de la partición raíz, o carpeta, en el caso de WSL. No todo bajo / es la misma unidad. Por ejemplo, en mi portátil, he instalado dos versiones de Ubuntu (20.04 y 18.04), así como Debian. Si abro esas distribuciones, selecciono el directorio raíz con el comando cd ~, y después escribo el comando explorer.exe ., se abrirá el Explorador de archivos de Windows y me mostrará la ruta de acceso al directorio de esa distribución.

Distribución Linux Ruta de acceso de Windows para acceder a la carpeta principal
Ubuntu 20.04 \\wsl$\Ubuntu-20.04\home\username
Ubuntu 18.04 \\wsl$\Ubuntu-18.04\home\username
Debian \\wsl$\Debian\home\username
Windows PowerShell C:\Users\username

Sugerencia

Si busca acceder al directorio de archivos de Windows desde la línea de comandos de distribución de WSL, en lugar de C:\Users\username, se accedería al directorio mediante /mnt/c/Users/username, porque la distribución de Linux ve el sistema de archivos de Windows como una unidad montada.

Deberá instalar Git en cada sistema de archivos con el que quiera usarlo.

Mostrar versiones de Git por distribución

Installing Git

Git ya está instalado con la mayoría de las distribuciones de Subsistema de Windows para Linux, pero es posible que quiera actualizar a la versión más reciente. También deberá configurar el archivo de configuración de Git.

Para instalar Git, consulte el sitio Descarga de Git para Linux . Cada distribución de Linux tiene su propio administrador de paquetes y comando de instalación.

Para la versión estable más reciente de Git en Ubuntu/Debian, escriba el comando:

sudo apt-get install git

Nota:

También puede instalar Git para Windows si aún no lo ha hecho.

Configuración del archivo de configuración de Git

Para configurar el archivo de configuración de Git, abra una línea de comandos para la distribución en la que está trabajando y establezca el nombre con este comando (reemplazando "Su nombre" por su nombre de usuario preferido):

git config --global user.name "Your Name"

Establezca el correo electrónico con este comando (reemplazando "youremail@domain.com" por el correo electrónico que prefiera):

git config --global user.email "youremail@domain.com"

Sugerencia

Si aún no tiene una cuenta de GitHub, puede registrarse para obtener una en GitHub. Si nunca has trabajado con GIT, las guías de GitHub pueden resultarte de ayuda para empezar. Si tiene que editar la configuración de Git, puede hacerlo con un editor de texto integrado como nano: nano ~/.gitconfig.

Se recomienda proteger su cuenta con autenticación en dos fases (2FA).

Configuración del Administrador de credenciales de Git

El Administrador de credenciales de Git (GCM) es un asistente de credenciales de Git seguro, creado sobre .NET que puede usarse tanto con WSL1 como con WSL2. Habilita la compatibilidad con la autenticación multifactor para repositorios de GitHub, Azure DevOps, Azure DevOps Server y Bitbucket.

GCM se integra en el flujo de autenticación para servicios como GitHub y, una vez que se ha autenticado en el proveedor de hospedaje, solicita un nuevo token de autenticación. A continuación, almacena el token de forma segura en el Administrador de credenciales de Windows. Después de la primera vez, puede usar Git para comunicarse con el proveedor de hospedaje sin necesidad de volver a autenticarse. Solo accederá al token en el Administrador de credenciales de Windows.

Para usar GCM con WSL, debe estar en Windows 10 versión 1903 o posterior. Esta es la primera versión de Windows que incluye la herramienta wsl.exe necesaria que GCM usa para interoperar con Git en sus distribuciones WSL.

Se recomienda instalar el último Git para Windows para compartir credenciales y configuraciones entre WSL y el host de Windows. El Administrador de credenciales de Git se incluye con Git para Windows y la versión más reciente se incluye en cada nueva versión de Git para Windows. Durante la instalación, se le pedirá que seleccione un asistente de credenciales, con GCM establecido como predeterminado.

Si tiene un motivo para no instalar Git para Windows, puede instalar GCM como una aplicación de Linux directamente en la distribución de WSL, pero tenga en cuenta que hacerlo significa que GCM se ejecuta como una aplicación de Linux y no puede usar las características de almacenamiento de credenciales o autenticación del sistema operativo Windows host. Consulte el repositorio de GCM para obtener instrucciones sobre cómo configurar WSL sin Git para Windows.

Para configurar GCM para usarlo con una distribución WSL, abra su distribución y escriba este comando:

Si el GIT instalado es >= v2.39.0

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"

si el GIT instalado es >= v2.36.1

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"

si la versión es < v2.36.1, escriba este comando:

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager-core.exe"

Nota:

El uso de GCM como asistente de credenciales para una instalación de Git de WSL significa que GCM no respeta cualquier configuración establecida en Git de WSL (de forma predeterminada). Esto se debe a que GCM se ejecuta como una aplicación de Windows y, por lo tanto, usará la instalación de Git para Windows para consultar la configuración. Esto significa que cosas como la configuración del proxy para GCM deben establecerse tanto en Git para Windows como en Git de WSL, ya que se almacenan en archivos diferentes (%USERPROFILE%\.gitconfig y \\wsl$\distro\home\$USER\.gitconfig). Puede configurar WSL para que GCM use la configuración de Git de WSL, pero esto significa que la configuración del proxy será única para la instalación de WSL específica y no se compartirá con otros usuarios o el host de Windows.

Git con SSH

El Administrador de credenciales de Git solo funciona con HTTP(S) remotos. Todavía puede usar Git con SSH:

Configuración adicional para Azure

Si tiene previsto trabajar con Azure Repos o Azure DevOps, se requiere alguna configuración adicional:

git config --global credential.https://dev.azure.com.useHttpPath true

Ahora cualquier operación de Git que realice dentro de su distribución WSL usará GCM. Si ya tiene credenciales almacenadas en caché para un host, accederá a estas desde el Administrador de credenciales. Si no es así, recibirá una respuesta de diálogo que le solicitará sus credenciales, aunque esté en una consola Linux.

Sugerencia

Si usa una clave de GPG para la seguridad de firma de código, es posible que tenga que asociar la clave GPG con el correo electrónico de GitHub.

Adición de un archivo Ignore de Git

Se recomienda agregar un archivo .gitignore a sus proyectos. GitHub ofrece una colección de plantillas .gitignore útiles con configuraciones de archivos .gitignore recomendadas organizadas según su caso de uso. Por ejemplo, esta es la plantilla de gitignore predeterminada de GitHub para un proyecto de Node.js.

Si elige crear un nuevo repositorio usando el sitio web de GitHub, hay casillas de verificación disponibles para inicializar su repositorio con un archivo README, un archivo .gitignore configurado para su tipo de proyecto específico y opciones para agregar una licencia si la necesita.

Git y VS Code

Visual Studio Code incluye compatibilidad integrada con Git, incluida una pestaña de control de código fuente que mostrará los cambios y controlará una variedad de comandos Git automáticamente. Obtenga más información sobre la compatibilidad con Git de VS Code.

Terminaciones de línea de Git

Si está trabajando con la misma carpeta de repositorio entre Windows, WSL o un contenedor, asegúrese de configurar terminaciones de línea coherentes.

Dado que Windows y Linux usan diferentes terminaciones de línea predeterminadas, Git puede notificar un gran número de archivos modificados que no tienen diferencias aparte de sus terminaciones de línea. Para evitar que esto suceda, puede deshabilitar la conversión final de línea mediante un archivo .gitattributes o globalmente en Windows. Consulte este documento de VS Code sobre cómo resolver problemas de terminaciones de líneas de Git.

Recursos adicionales