git init --bare 权限在 16gb USB 驱动器上被拒绝

git init --bare 权限在 16gb USB 驱动器上被拒绝

我在 Windows 7 机器(64 位)上使用 GIT,并且一直在学习如何使用 GIT 对我的文件进行版本控制。

现在我希望能够--bare在外部设备(在本例中为 16GB USB 记忆棒)上创建一个存储库,但不幸的是,当我尝试--bare在其上创建存储库时出现以下错误:

f:/: Permission denied

我正在使用与 GIT 一起安装在 Windows 机器上的 GIT Bash 程序,因此这些是我输入的命令(我在打开程序时也按住 ctrl + shift 以管理员身份打开它)

cd /f
git init --bare
f:/: Permission denied

但是,如果我创建一个普通的存储库,它就可以正常工作:

cd /f
git init
Initialized empty repository in f:/.git/

有人能解释一下为什么我无法创建--bare存储库吗?

任何帮助将非常感激。

答案1

UNIX 系统,当您尝试创建已存在的目录时,会返回“目录已存在”错误。如果您无法创建不存在的目录(即使该目录实际上已经存在),Windows 会返回“权限被拒绝”错误。当程序员将 UNIX 代码移植到 Windows 时,这会给他们带来麻烦。

当您尝试创建裸存储库时f:\,它首先git会创建目录来存储它。如果目录已经存在,它会收到“目录已存在”错误。然而f:\驾驶到 Windows。Windows 将此解释为程序试图创建一个驾驶,并且拒绝git执行此操作。由于git不了解 Windows 的这个怪癖,它认为它没有权限访问该目录。

解决方案是在子目录中创建存储库。

(对于那些编写/维护的人来说git:尝试创建一个目录以确保它存在,然后在出现错误时中止错误的行为。如果您创建目录只是为了确保它存在,但因任何原因失败了,那么您应该检查目录是否存在。这在许多不同的程序中造成了许多错误(例如这个),天哪,你们现在应该知道这一点了。)

相关内容