如何在git bash中注册新挂载的驱动器?

19
在我日常工作中(我使用MS Windows),我会一整天打开我的git bash(实际上是使用console2)来操作。经常有这样的情况:我需要挂载新的驱动器以便用git进行操作。但是我发现,为了让git识别新的驱动器盘符,我需要退出bash并重新打开它。
有没有任何命令可以在git bash中“注册”已经挂载的驱动器呢?
谢谢。
编辑2:
我没有任何选项可以在我的问题下留言(很奇怪...?),所以我在这里发布。
$ mount -a
sh.exe": mount: command not found

当你说“驱动器字母”时,这意味着Windows系统。是这样吗?我猜“console2”也是如此。 - Dennis Williamson
3
是的,git在Windows上的端口基于“msys”仿真层构建(类似于Cygwin,但是实现方式不同)。“msys”有自己的表示Windows驱动器的方式;例如,Windows称为“C:\”的东西,在msys中称为“/c”(而Cygwin称为“/cygwin/c”)。显然,挂载新的Windows驱动器,比如说“X:\”,并不能自动将其显示为“/X”。 - Keith Thompson
我其实也有同样的问题。我的工作正在一个Truecrypt文件中进行。如果我先启动git bash,然后将Truecrypt文件挂载到比如说Y:,我就无法执行cd /y命令。 - Christoffer
我和OP一样,得到了如下结果: sh.exe": mount: command not found - Christoffer
我成功地让GitBash在Windows中使用Windows资源管理器的上下文菜单,将TrueCrypt文件挂载为驱动器。选择该驱动器上的目录,然后从上下文菜单中调用“Git Bash Here”。 - Hachmaninow
显示剩余2条评论
4个回答

18

有几个问题,由于找不到相关资料,所以请谨慎对待。

  1. Msysgit没有包含mount命令。据我所知,cygwin 包含该命令。在 Msys 和 Git Bash 中,既无法查看所有已挂载的驱动器,也无法挂载新的驱动器。

回答您的问题,您不能在 Git Bash 中动态分配驱动器,因此如果要挂载新的驱动器,您需要关闭所有实例并重新启动 Git Bash (source)。参考文献缓存在这里。很抱歉没有更好的解决方案。


8
关闭所有实例是关键。我尝试重新启动Git Bash,但它没有成功,因为我还有另一个窗口打开着。 - NickSoft
关闭所有实例并重新启动Git Bash对我没有起作用。原因可能是我挂载了Truecrypt映像而不是物理驱动器。 - Max Hohenegger
1
我不得不进入任务管理器,查找所有的 git.exesh.exe 进程。即使我关闭了所有窗口,还有一些残留的进程需要被移除。 - CEPA
2
对我来说,直到除了sh.exe之外,我还杀死了第一个Git Bash窗口启动的ssh-agent.exe,它才起作用。 - Peter Herdenborg

0

我通常会将驱动器挂载到文件系统中,然后必须在控制台2中的Git Bash会话中运行更改某些文件的脚本。

如果您将某个内容挂载到给定的驱动器字母上,例如Windows文件系统上的F:,然后启动Git Bash会话,它将被映射。我可以挂载/卸载F:驱动器,会话仍然可以访问/f/而没有任何问题。因此,请挂载所有您通常需要访问的驱动器,然后启动会话,希望您不需要经常重新启动Git Bash。


0

我发现如果我退出所有当前运行的git bash会话,然后启动一个新的会话,那么我可以在新的bash会话中访问新的驱动器,例如X:,在/x/下。

即使启动一个新的git bash会话也不足够,如果已经有一个正在运行的会话,我必须退出之前的git bash会话,然后启动一个新的会话才能使新的驱动器字母可用。


-1
我发现如果我在用户环境变量中设置
MSYS_WATCH_FSTAB=YesPlease 那么一切都可以工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接