121 votes

Comment utiliser le magasin de données d'identification Git sur WSL (Ubuntu sous Windows)?

J'ai essayé de suivre ces instructions: https://stackoverflow.com/a/40312117/21728, ce qui en gros consiste à:

 sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
 

Mais quand je fais une opération de réseau, j'obtiens cette erreur:

 ** (process:7902): CRITICAL **: could not connect to Secret Service: Cannot autolaunch D-Bus without X11 $DISPLAY
 

C'est logique je suppose car il n'y a en effet pas d'affichage X11.

Comment faire en sorte que la mise en cache des informations d'identification Git fonctionne sur Ubuntu sous Windows (WSL)?

214voto

Carlos Beppler Points 86

Si vous avez installé Git pour Windows il y a un windows intégré credential manager est installé sur votre système.

Vous pouvez exécuter les exécutables windows à partir de WSL que trouvé ici.

Pour l'utiliser, vous pouvez exécuter la commande suivante (en supposant que votre git pour windows est installé sur C:\Tools\Git)

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

67voto

Richard Bronosky Points 3163

TL;DR

J'ai créé un script qui fait cela pour vous. Je l'utilise avec mon Chef d'orchestration.

Recherchez ou installer git-credential-manager.exe

  1. Ouvrez cmd.exe et appelez - where git-credential-manager.exe
    • Si elle renvoie un chemin, une GRANDE. Se déplacer sur la conversion de la voie.
    • Si non...
  2. En cmd.exe appel where git.exe
    • S'il ne retourne pas un chemin d'accès, la prochaine étape est d'installer le Gestionnaire d'informations d'Identification à lui seul
    • Si elle retourne un chemin d'accès, il sera quelque chose comme:
    • C:\Program Files\Git\cmd\git.exe
    • Laissons tomber le tout après le dernier slash et de le modifier comme ceci:
    • C:\Program Files\Git\mingw64\libexec\git-core\git-credential-manager.exe
    • Si cela existe, une GRANDE. Se déplacer sur la conversion de la voie.
    • Sinon...
  3. Installer le Gestionnaire d'informations d'Identification à partir de Microsoft repo git, et ensuite utiliser where de nouveau pour obtenir le chemin d'accès.

Convertir le chemin de DOS à Linux

Nous avons besoin de:

  1. Remplacer l' C:\ avec /mnt/c/
  2. Flip les barres obliques de \ de /
  3. S'échapper des espaces (et entre parenthèses, si il y en a) avec doubles barres obliques inverses \\

Alors...

  • "C:\Program Files\Git\mingw64\libexec\git-core\git-credential-manager.exe" devient...
  • "/mnt/c/Program\\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"

Configurer git

  1. En bash appel git config --global credential.helper "<converted/path>"

45voto

selkieTG Points 141

À l'aide de Windows 10 et "WSL, j'ai créé un ~/.gitconfig fichier, mais avait une erreur de frappe sur le [identification] de la section de l'étiquette comme [références]. J'ai essayé de lancer la commande git d'informations d'identification de remplissage, puis de les nourrir sa sortie à git d'informations d'identification de l'approuver, ce qui pourrait avoir fonctionné, mais je pense que non car il a dit "usage: git d'identification [remplissage|approuver|rejeter]". Enfin, j'ai simplement lancé:

$ git config --global credential.helper cache

et puis a fait un git pull; lorsque vous êtes invité pour l'utilisateur et le mot de passe j'ai tapé comme d'habitude. Après cela, il s'en souvenait. J'ai trouvé qu'il y avait ajouté (nommé correctement) l'article de mon ~/.gitconfig:

[credential]
        helper = cache

J'ai édité que de fournir un plus long délai d'attente:

[credential]
        helper = cache --timeout=144000

Et tout semble fonctionner bien maintenant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X