Как мне исправить проблему с git-credential-manager в WSL2?

#git #github #windows-subsystem-for-linux

#git #github #windows-subsystem-for-linux

Вопрос:

Я использую ubuntu 20.04 в Windows 10 с WSL2. В последнее время мне трудно работать с git push origin моим репозиторием. Он всегда возвращает эту ошибку

/mnt/c/Программа Files/Git/mingw64/libexec/git-core/git-credential-manager.exe получаем: 1: /mnt/c/Program Files/Git/mingw64/libexec/git-core/git-credential-manager.exe : не найдено

После того, как он запрашивает мое имя пользователя и пароль на github, он по-прежнему возвращает указанную выше ошибку с добавлением «Все обновлено«.

/mnt/c/Program Files/Git/mingw64/libexec/git-core/git-credential-manager.exe магазин: 1: / mnt/ c/ Program Files/Git/mingw64/libexec/git-core/git-credential-manager.exe : не все найдено в актуальном состоянии

Я пробовал это решение ниже, но оно также не работает.

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

Как мне исправить эту проблему, пожалуйста?

Комментарии:

1. Установите git на сам wsl вместо того, чтобы полагаться на git для Windows. Кроме того, вы недавно установили обновление git, которое добавило ядро Credential Manager? В этом случае вам может потребоваться настроить глобальную конфигурацию git в WSL, чтобы вызывать ее вместо старого менеджера учетных данных.

2. Спасибо за ответ. Да, я фактически установил git на сам wsl. Из wsl ubuntu в терминале Windows я могу получить доступ git , но я не могу получить к нему доступ из powershell. И при использовании sudo apt-get install git в терминале Windows возвращает> git уже самую новую версию (1: 2.25.1-1ubuntu3). Вчера я обновил и обновил ubuntu. Я действительно не знаю, является ли это причиной проблемы.

3. Проверьте настройки среды path, чтобы убедиться, что сначала она находит WSL.

4. Пожалуйста, как мне проверить параметр среды path?

5. opensource.com/article/17/6/set-path-linux

Ответ №1:

Запуск от имени WSL2/root :

 file=/usr/bin/git-credential-manager
echo 'exec "/c/Program Files/git/mingw64/libexec/git-core/git-credential-manager.exe" $@' > $file
chmod  x $file
 

затем запустите как обычный пользователь (например, ubuntu).

 cat << EOF >> ~/.gitconfig
[credential]
    helper = manager
EOF
 

Комментарии:

1. Я сделал именно так, как вы советовали, он все равно выдавал ошибку при попытке git push origin . Мне пришлось активировать ssh в ubuntu и github, чтобы посмотреть, сработает ли это. Он не вернул ошибку, но «Все обновлено». Итак, я предположил, что допустил некоторые ошибки. Проверяя git status , я заметил, что я не установил и не зафиксировал некоторые файлы. Я сделал и попробовал git push origin еще раз… Виола, он, наконец, зафиксирован без ошибок. Спасибо за вашу помощь @jessehouwing Спасибо и за вашу помощь.

2. Я проголосовал за ваш ответ дюжину раз, но, похоже, он возвращается к 0 голосам. Я новичок в этой платформе, так что не обращайте внимания на мое невежество.

3. Мне пришлось изменить путь для git-credential-manager.exe в /mnt/c/Program Files/Git/mingw64/libexec/git-core/git-credential-manager.exe .

4. Эта рекомендация, которая является небольшим изменением приведенного выше ответа, сработала для меня: docs.microsoft.com/en-us/windows/wsl/tutorials /… В двух словах: git config --global credential.helper "/mnt/c/Program Files/Git/mingw64/libexec/git-core/git-credential-manager-core.exe"

5. Мой WSL2 Ubuntu 20.04.4 выглядел примерно так /mnt/c/Program Files/Git/mingw64/bin/git-credential-manager-core.exe get: 1: /mnt/c/Program Files/Git/mingw64/bin/git-credential-manager-core.exe: not found и был решен путем запуска git config --global credential.helper store .