【发布时间】:2011-08-20 12:12:58
【问题描述】:
我们的开发人员混合使用基于 Windows 和 Unix 的操作系统。因此,在 Unix 机器上创建的符号链接成为 Windows 开发人员的问题。在 windows (msysgit) 中,符号链接被转换为文本文件,其中包含指向文件的路径。相反,我想将符号链接转换为实际的 Windows 符号链接。
我必须的(更新)解决方案是:
- 编写一个以递归方式查找“符号链接”文本文件的结帐后脚本。
- 将它们替换为与虚拟“符号链接”具有相同名称和扩展名的 Windows 符号链接(使用 mklink)
- 通过在 .git/info/exclude 中添加条目来忽略这些 windows 符号链接
我还没有实现这个,但我相信这是解决这个问题的可靠方法。
问题:
- 您认为这种方法有哪些缺点(如果有的话)?
- 这个结帐后脚本甚至可以实现吗?即我可以递归找出 git 创建的虚拟“符号链接”文件吗?
- 有人已经编写过这样的脚本了吗?
【问题讨论】:
-
虽然 Git 支持符号链接,但我强烈建议不要将它们作为链接存储在您的存储库中,尤其是如果您也在 Windows 上使用该代码。
-
@Greg Hewgill - 我完全同意你的看法。不幸的是,我们代码库的性质需要符号链接......所以删除它们不是我们的选择。
-
你也可以在 msysgit 邮件列表上问他们为什么一开始没有那样实现它。
-
@GregHewgill 为什么不呢? Windows 支持符号链接和联结——在我看来,这确实是 Windows 版本的 Git 中缺少的功能......
-
With "Developer Mode" enabled in Windows 10, creating symlinks doesn't require Administrator rights!(其他人对投票较少的答案发表了同样多的评论,但我没有看到他们。希望这个评论对未来的读者更加可见。)