Comenzar mediante Git en Subsistema de Windows para Linux

Git es el sistema de control de versiones más usado. 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 AND 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 la Windows NTFS C:\ unidad en la máquina. En Linux, las unidades no reciben letras. Se les dan 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, seleccione el directorio principal con el comando y, a continuación, escriba el comando cd ~explorer.exe ., Windows Explorador de archivos se abrirá y me mostrará la ruta de acceso del directorio para esa distribución.

Distribución de Linux Windows Ruta de acceso 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 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.

Showing Git versions by distro

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 De descarga de Git para Linux . Cada distribución de Linux tiene su propio administrador de paquetes e instala el comando .

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 necesita 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 basado en .NET que se puede usar con WSL1 un WSL2. Permite la compatibilidad con la autenticación multifactor para repositorios, Azure DevOps, Azure DevOps Server y Bitbucket GitHub.

GCM se integra en el flujo de autenticación para servicios como GitHub y, una vez que se autentica 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 necesaria wsl.exe que GCM usa para interoperar con Git en las distribuciones de WSL.

Se recomienda instalar la versión más reciente de Git para Windows con el fin de compartir la configuración de credenciales & entre WSL y el host de Windows. Git Credential Manager se incluye con Git para Windows y la versión más reciente se incluye en cada nueva versión de Git para Windows versión. 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 Linux directamente en la distribución de WSL, pero tenga en cuenta que hacerlo significa que GCM se ejecuta como una aplicación 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 su uso con una distribución WSL, abra la distribución y escriba este comando:

Si GIT instalado es >= v2.36.1

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

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

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

Nota

El uso de GCM como asistente de credenciales para una instalación de Git de WSL significa que no se respeta cualquier configuración establecida en Git de WSL GCM (de forma predeterminada). Esto se debe a que GCM se ejecuta como una aplicación de Windows y, por lo tanto, usará Git para Windows instalación para consultar la configuración. Esto significa que, como la configuración de proxy para GCM debe establecerse en Git para Windows, así como en Git de WSL, ya que se almacenan en archivos diferentes (%USERPROFILE%\.gitconfig frente \\wsl$\distro\home\$USER\.gitconfiga ). Puede configurar WSL para que GCM use la configuración de Git de WSL, pero esto significa que la configuración del proxy será exclusiva de la instalación de WSL específica y no se compartirá con otros usuarios ni con 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 la distribución de 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 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 los proyectos. GitHub ofrece una colección de plantillas .gitignore útiles con configuraciones de archivo .gitignore recomendadas organizadas según su caso de uso. Por ejemplo, esta es la plantilla predeterminada de gitignore de GitHub para un proyecto de Node.js.

Si decide crear un repositorio con el sitio web de GitHub, hay casillas disponibles para inicializar el repositorio con un archivo LÉAME, archivo .gitignore configurado para su tipo de proyecto específico y opciones para agregar una licencia si necesita una.

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.

Finales de línea de Git

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

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

Recursos adicionales