windows - 如何在 wsl 中进行 git clone?

标签 windows git windows-subsystem-for-linux

我尝试使用 wsl(Ubuntu 20.04)从全新的 Windows 安装克隆一个 repo。
我所做的:生成 SSH key 并将公钥添加到 github 和 framagit。
试过

ssh -i -T git@github.com


ssh -i -T git@framagit.org

他们俩都说:“你好,我的伪君子,你被认证了”

但是当我尝试克隆时,我有以下几点:
没有 sudo :
Cloning into 'testaaa'...
error: chmod on /mnt/d/dev/dev/testaaa/.git/config.lock failed: Operation not permitted
fatal: could not set 'core.filemode' to 'false'

使用 sudo :
Cloning into 'testaaa'...
ssh: connect to host framagit.org port 22: Network is unreachable
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

我该怎么做才能解决我的问题?

最佳答案

您不想使用 sudo在这里,通常没有理由在 Git 中需要它,除非您正在使用的存储库由 root 专门拥有。 .

您看到的问题是您正在使用 Linux Git,它期望标准 Unix 权限在不支持它们的文件系统 (NTFS) 上工作。 Git 会在重写锁定文件时尝试适本地设置权限,它将重命名为配置文件的位置,但它不能这样做,并且失败了。 Windows 版 Git 没有这个问题,因为它映射这些权限与 WSL 不同,WSL 只是总是返回错误。

您可以尝试以下几点:

  • 只需在 WSL 下克隆存储库,而不是在 Windows 驱动器下。这保证有效,应该没问题。
  • 将存储库克隆到 WSL 下的某个位置并将其移动到 Windows 驱动器中,手动设置 Windows 的配置选项或尝试 git init克隆后再次在存储库中。
  • 运行 git init在 Windows 驱动器上,然后执行 git remote add origin YOUR-REMOTE和一个 git pull origin master (或无论你的分支叫什么)。

  • git init 起,最后一个可能不会比你现在的好用。可能会以同样的方式失败。

    关于windows - 如何在 wsl 中进行 git clone?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62245016/

    相关文章:

    c - Win32 在多大程度上支持中断?

    c++ - Qt Creator 中的 Gotoline

    GIT 损坏的文件 (<<<<<<<<HEAD)

    bash - 从 bash 脚本检测 "Ubuntu on Windows"与 native Ubuntu

    git - 对于大型项目来说,在 WSL 上的 Debian 和 Ubuntu 上运行 git 命令非常慢

    windows - 测试排序算法的程序

    c# - 右键单击按钮会膨胀 AppBar,而不是触发右键单击事件

    git - 使用 awk sed 解析更新 puppet 文件

    混帐 "does not appear to be a git repository"

    linux - 在 Windows 上的 Ubuntu 上的 Bash 上设置 $PATH 的问题(Linux 子系统)