【问题标题】:mklink + git issues - why wont it let me link?mklink + git 问题 - 为什么它不让我链接?
【发布时间】:2016-05-13 03:44:50
【问题描述】:

我正在尝试将我的 .bash_profile 硬链接到我硬盘上的 dotfiles 存储库中。我无法让它工作,我不知道为什么。

mklink - 类型 - 链接 - 目标

mklink /H "F:Documents\Repos\dotfiles\.bash_profile" "C:\Users\name\.bash_profile"

这将返回以下消息“系统无法将文件移动到其他磁盘驱动器”

【问题讨论】:

  • 我会说这是因为系统无法将文件移动到不同的磁盘驱动器。 :) 但说真的,F 和 C 是什么文件系统类型? NTFS?什么操作系统?
  • ntfs,C 是 ssd,F 是 hdd。赢得 10

标签: git file mklink


【解决方案1】:

由于hard links 的性质,它们不能从一个驱动器到另一个驱动器。 Here's Microsoft's documentation on the subject.

每个文件都是一个硬链接。硬链接是指向硬盘驱动器上的一段数据(文件)的名称。对于大多数文件,只有一个名称指向一个文件。当您对现有文件进行硬链接时,您正在创建指向同一文件的另一个文件路径。 硬链接指向数据,而不是名称

这就是为什么硬链接只能在同一个驱动器上进行,驱动器不能在不使用名称的情况下引用另一个驱动器上的基础文件。要链接到另一个驱动器,您需要使用从一个文件名到另一个文件名的符号链接。

【讨论】:

  • 如果我使用符号链接,但将主文件存储在 hdd F 驱动器上的 dotfile 存储库中,然后在用户目录中使用符号链接,这可行吗?我不确定软链接是如何工作的,它只是指向文件?如果我的 bashrc 是软符号链接,它会被加载吗?
  • @user125047 是的,它应该可以正常工作。软链接就像一个小文件,上面写着“真正的文件在这里”。大多数程序都会很好地进行重定向。重要的是将真实文件保存在 Git 存储库中,否则 Git 将只存储软链接而不是真实数据。
  • 我认为可能是这样。我现在已经将点文件移动到 SSD 中,考虑到相对较小的尺寸,这不是一个问题。但这对将来的参考很有用!谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-15
  • 2018-05-30
  • 1970-01-01
  • 2015-12-13
  • 1970-01-01
相关资源
最近更新 更多