начало работы с помощью Git в подсистема Windows для Linux

Git — это наиболее часто используемая система управления версиями. С помощью Git вы можете отслеживать изменения, внесенные в файлы, чтобы иметь запись о том, что было сделано, и иметь возможность вернуться к более ранним версиям файлов при необходимости. Git также упрощает совместную работу, позволяя объединить изменения нескольких пользователей в один источник.

Git можно установить на Windows AND в WSL

Важно учитывать: при включении WSL и установке дистрибутива Linux устанавливается новая файловая система, отделенная от Windows NTFS C:\ диск на компьютере. В Linux диски не получают буквы. Они получают точки подключения. Корнем файловой системы / является точка подключения корневой секции или папки в случае WSL. Не все под / тем же диском. Например, на ноутбуке я установил две версии Ubuntu (20.04 и 18.04), а также Debian. Если открыть эти дистрибутивы, выберите домашний каталог с помощью командыcd ~, а затем введите командуexplorer.exe ., Windows проводник откроется и отобразится путь к каталогу для этого дистрибутива.

Дистрибутив Linux Windows путь для доступа к домашней папке
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

Совет

Если вы хотите получить доступ к каталогу файлов Windows из командной строки дистрибутива WSL, а не C:\Users\usernameк каталогу будет доступен доступ/mnt/c/Users/username, так как дистрибутив Linux просматривает вашу Windows файловую систему в качестве подключенного диска.

Необходимо установить Git в каждой файловой системе, с которой вы планируете использовать ее.

Showing Git versions by distro

Установка Git

Git уже установлен с большинством дистрибутивов подсистема Windows для Linux, однако может потребоваться обновить до последней версии. Вам также потребуется настроить файл конфигурации Git.

Сведения об установке Git см. на сайте Git Download for Linux . Каждый дистрибутив Linux имеет собственный диспетчер пакетов и команду установки.

Для последней стабильной версии Git в Ubuntu/Debian введите команду:

sudo apt-get install git

Примечание

Вы также можете установить Git для Windows, если вы еще этого не сделали.

Настройка файла конфигурации Git

Чтобы настроить файл конфигурации Git, откройте командную строку для дистрибутива, в который вы работаете, и задайте имя с помощью этой команды (замените "Ваше имя" предпочитаемым именем пользователя):

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

Задайте сообщение электронной почты с помощью этой команды (заменив "youremail@domain.com" предпочитаемой электронной почтой):

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

Совет

Если у вас еще нет учетной записи GitHub, ее можно зарегистрироваться на GitHub. Если вы никогда не использовали Git, обратитесь к руководствам по GitHub. Они помогут вам приступить к работе. Если вам нужно изменить конфигурацию Git, это можно сделать с помощью встроенного текстового редактора, например nano: nano ~/.gitconfig.

Рекомендуется защитить учетную запись с помощью двухфакторной проверки подлинности (2FA).

Настройка диспетчера учетных данных Git

Диспетчер учетных данных Git (GCM) — это безопасный вспомогательный компонент учетных данных Git, основанный на .NET, который можно использовать с WSL1 wSL2. Она обеспечивает поддержку многофакторной проверки подлинности для репозиториев GitHub, Azure DevOps, Azure DevOps Server и Bitbucket.

GCM интегрируется в поток проверки подлинности для таких служб, как GitHub, и после проверки подлинности в поставщике услуг размещения запрашивает новый маркер проверки подлинности. Затем маркер сохраняется безопасно в диспетчере учетных данных Windows. После первого входа вы можете использовать Git для связи с поставщиком услуг размещения, не требуя повторной проверки подлинности. Он просто обратится к маркеру в диспетчере учетных данных Windows.

Чтобы использовать GCM с WSL, необходимо использовать Windows 10 версии 1903 или более поздней. Это первая версия Windows, включающая необходимое wsl.exe средство, которое GCM используется для взаимодействия с Git в дистрибутивах WSL.

Рекомендуется установить последнюю версию Git для Windows, чтобы предоставить общий доступ к параметрам учетных & данных между WSL и узлом Windows. Диспетчер учетных данных Git входит в состав Git для Windows, а последняя версия включается в каждый новый выпуск Git для Windows. Во время установки вам будет предложено выбрать вспомогательную учетную запись с GCM задать значение по умолчанию.

Если у вас есть причина не устанавливать Git для Windows, вы можете установить GCM как приложение Linux непосредственно в дистрибутиве WSL, но обратите внимание, что это означает, что GCM работает как приложение Linux и не может использовать функции проверки подлинности или хранилища учетных данных узла Windows операционной системы. Инструкции по настройке WSL без Git для Windows см. в репозитории GCM.

Чтобы настроить GCM для использования с дистрибутивом WSL, откройте дистрибутив и введите следующую команду:

Если установлен >GIT = версия 2.36.1

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

в противном случае, если версия версии < 2.36.1 введите следующую команду:

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

Примечание

Использование GCM в качестве вспомогательной функции учетных данных для установки WSL Git означает, что любой набор конфигурации в WSL Git не учитывается GCM (по умолчанию). Это связано с тем, что GCM выполняется в качестве приложения Windows и поэтому будет использовать Git для Windows установки для запроса конфигурации. Это означает, что параметры прокси-сервера для GCM необходимо задать в Git для Windows, а также WSL Git, так как они хранятся в разных файлах (%USERPROFILE%\.gitconfigи\\wsl$\distro\home\$USER\.gitconfig). Вы можете настроить WSL таким образом, чтобы GCM использовал конфигурацию WSL Git, но это означает, что параметры прокси-сервера будут уникальными для конкретной установки WSL, а не совместно с другими пользователями или узлом Windows.

Git с SSH

Диспетчер учетных данных Git работает только с удаленными клиентами HTTP(S). Вы по-прежнему можете использовать Git с SSH:

Дополнительная конфигурация для Azure

Если вы планируете работать с Azure Repos или Azure DevOps, потребуется дополнительная настройка:

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

Теперь любая операция Git, выполняемая в дистрибутиве WSL, будет использовать GCM. Если у вас уже есть кэшированные учетные данные для узла, к ним будет выполняться доступ из диспетчера учетных данных. В противном случае отобразится диалоговое окно с запросом учетных данных, даже если вы работаете в консоли Linux.

Совет

Если вы используете ключ GPG для обеспечения безопасности подписывания кода, возможно, потребуется связать ключ GPG с GitHub электронной почты.

Добавление файла игнорирования Git

Мы рекомендуем добавить в проекты GITIGNORE-файл . GitHub предлагает коллекцию полезных шаблонов .gitignore с рекомендуемыми настройками файлов .gitignore, упорядоченными в соответствии с вашим вариантом использования. Например, ниже приведен шаблон gitignore по умолчанию GitHub для проекта Node.js.

Если вы решили создать новый репозиторий с помощью веб-сайта GitHub, можно установить флажки для инициализации репозитория с помощью файла README, gitignore-файла, настроенного для конкретного типа проекта, и параметров для добавления лицензии, если это необходимо.

Git и VS Code

Visual Studio Code поставляется со встроенной поддержкой Git, включая вкладку системы управления версиями, которая будет отображать изменения и обрабатывать различные команды Git. Узнайте больше о поддержке Git VS Code.

Окончание строки Git

Если вы работаете с той же папкой репозитория между Windows, WSL или контейнером, обязательно настройте согласованные конечные строки.

Так как в Windows и Linux используются разные окончания строк по умолчанию, Git может сообщать о большом количестве измененных файлов, которые не имеют различий от окончаний строк. Чтобы предотвратить это, можно отключить преобразование конца строки с помощью .gitattributes файла или глобально на стороне Windows. См. этот VS Code документации по устранению проблем с завершением строки Git.

Дополнительные ресурсы