【问题标题】:Using WSL git with Windows integration将 WSL git 与 Windows 集成一起使用
【发布时间】:2021-04-18 11:29:28
【问题描述】:

我无法让git-credential-manager.exe 使用 WSL(最新的 Ubuntu 发行版)。我在 Stackoverflow 上看到了各种关于此的问题,但没有为我回答。

我的情况很简单。一切都是最新的。 git 安装在 WSL 中。 git is already the newest version (1:2.25.1-1ubuntu3.1). Windows 版 Git 安装在 Windows 中(Git for Windows v2.31.1,“最新更新:2021 年 3 月 27 日”)。 更糟糕的是:我已经完全重新安装了 Windows,然后设置了 WSL 并在上面放置了一个新的 Ubuntu 实例,Windows 与 git still 的集成完全失败了,所以如果我做错了什么,我真的会感谢知道那是什么! ????

现在,在 WSL 中,我已经设置了 git-credential-manager 以在 Windows 上使用 Git。 sudo vi /usr/bin/git-credential-manager,然后添加:

#!/bin/sh
exec "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe" $@

保存文件,然后sudo chmod +x /usr/bin/git-credential-manager 好的,所以一切都(据说)设置好了。在我的 git 项目中,我输入 git push -u origin master

Windows 凭据管理器的 Git 弹出打开,询问我的凭据,所以我输入了它们。然后一切都失败了:

Logon failed, use ctrl+c to cancel basic credential prompt.
Username for 'https://github.com':

我可以在命令行上手动输入我的用户名和密码,这确实有效,但是 a) 我必须每次都这样做,并且 b) Github 会在几秒钟内取消这个选项几个月的时间。

总结:

  • 在 Windows 中,我可以毫无问题地推送我的 PowerShell 项目,Windows 版 Git 会处理我的授权(因此我每次推送时都不需要输入用户名/密码)。
  • 在 WSL Ubuntu 中,当我推送我的 bash/python 项目时,Git for Windows 凭据管理器会弹出(每次)以询问我的用户名/密码,但随后完全无法授权 (Logon failed, use ctrl+c to cancel basic credential prompt),我必须在 bash 中手动输入用户名/密码到 git(每次)。

对此的任何建议都将不胜感激,因为没有我读过的无缝 WSL 操作应该是可能的,这令人沮丧,更糟糕的是,当 Github 阻止从控制台。

【问题讨论】:

  • 这不会回答您的问题,IK 这就是为什么我使用 cmets 而不是答案...如果您遇到此类问题,可以使用 GitHub CLI。在 WSL 中安装它,它不会每次都询问你 OAuth。
  • 好的,我想你在说这个? dev.to/sisodiya2421/get-github-cli-in-wsl2-4d6n我从来没有用过,但这可能很好,我只用过 Github,所以这可能就是我所需要的。
  • 是的,就是这个!! :)

标签: git github windows-subsystem-for-linux


【解决方案1】:

除了 /usr/bin/git-credential-manager 改变,你还需要运行:

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

它现在应该可以工作了。如果没有,请尝试使用/mnt/c/Program Files/Git/bin/git.exe 而不是 /usr/bin/git

【讨论】:

  • 我已经把它放到~/.gitconfig 中(上面忘了提到),所以仍然不能解决它。但是,您使用来自/mnt/c 的 git.exe 的想法确实 工作(谢谢),所以我至少可以使用您的解决方法将/mnt/c 中的git.exe 别名。我仍然完全困惑为什么git-credential-manager.exe 不能与/usr/bin/git 一起工作,尽管人们说它应该这样做。 ?
猜你喜欢
  • 2012-11-03
  • 2019-03-25
  • 2018-12-19
  • 2017-11-10
  • 2016-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-13
相关资源
最近更新 更多