在 WSL 中的共享驱动器上使用 Git

在 WSL 中的共享驱动器上使用 Git

我有一个网络连接驱动器,T:我可以通过 Windows 文件资源管理器或 GitBash 正常访问它。但在 WSL 中,我无法使用 git 推送到位于驱动器上的远程位置。这是我的工作流程:

挂载远程驱动器

sudo mkdir /mnt/t
sudo mount -t drvfs T: /mnt/t -o uid=kkovacs -o gid=kkovacs

创建远程仓库

cd /mnt/t/MyFolder
mkdir remote_repo
cd remote_repo
git init --bare

创建本地仓库并添加远程仓库

cd ~
mkdir local_repo
cd local_repo
git init
git remote add origin /mnt/t/MyFolder/remote_repo

将新文件添加到本地仓库,提交并尝试推送

touch asdf
git add asdf
git commit -m "added asdf"
git push origin master

push 命令的输出如下:

Counting objects: 11, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (11/11), 6.72 KiB | 573.00 KiB/s, done.
Total 11 (delta 0), reused 0 (delta 0)
remote: error: insufficient permission for adding an object to repository database /mnt/t/MyFolder/remote_repo/./objects/incoming-p5fut6
remote: fatal: failed to write object
error: remote unpack failed: unpack-objects abnormal exit
To /mnt/t/MyFolder/remote_repo/
 ! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to '/mnt/t/MyFolder/remote_repo/'

我还使用以下方式检查过ls -l,我是所有文件的所有所有者。使用 GitBash 一切正常,但我想使用 WSL。

编辑:我发了一个新问题关于略有不同但非常相似的话题。

答案1

已编辑

最近几天我发现如果我在启动 wsl 后插入便携式驱动器,则 wsl 中将无法访问。我尝试wsl -t <distro_name>再次登录 wsl 并成功安装它。

这是我原来的答案。

就我而言,这是由文件系统错误引起的。虽然我不知道这种文件系统错误是如何产生的,但我设法用 修复了它chkdsk.exe。假设我们要修复卷标为 的驱动器g:\,则可以使用以下命令。

chkdsk.exe g: /F

希望这对你有帮助:)

相关内容