Windows中的Git符号链接?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (5)
  • 关注 (0)
  • 查看 (226)

开发人员使用Windows和基于Unix操作系统的混合。因此,在Unix机器上创建的符号链接成为Windows开发人员的一个问题。在windows(Msysgit)中,符号链接被转换为文本文件,其中包含指向的文件的路径。

必须解决的办法是:

  • 编写一个签出后脚本,递归地查找“symlink”文本文件。
  • 将它们替换为windows符号链接(使用mklink),其名称和扩展名与虚拟“符号链接”相同。
  • 通过添加条目忽略这些窗口符号链接。GIT/INFO/排除
提问于
用户回答回答于

我建议你不要在回购中使用符号链接。将实际内容存储在回购程序中,然后将符号链接放在指向内容的回购‘旁边。

因此,假设您正在使用回购(repo‘)来比较托管您的站点。*在Win主持下的尼克斯。将内容存储在回购中,让我们说/httpRepoContent and c:\httpRepoContent这个文件夹是通过git、svn等同步的。

然后,替换您的web服务器的内容文件夹(/var/www and c:\program files\web server\www{名称并不重要,如果必须的话编辑),使用一个符号链接到您的repo‘中的内容。Web服务器将看到内容实际上在‘正确’的位置,但您可以使用您的源代码管理。

但是,如果您需要在repo中使用symlink‘,则需要查看类似于预/后提交脚本之类的内容。我知道您可以使用它们来做一些事情,例如通过格式化程序解析代码文件,所以应该可以转换平台之间的符号链接。

如果有人知道如何为常见的源代码控件SVNgitMG学习如何编写这些脚本,那么请添加一个注释。

用户回答回答于

应该可以在msysgit中实现。题主可以尝试下

用户回答回答于

的最新版本GITSCM(Testet 2.11.1)允许启用符号链接。但是,必须再次使用符号链接克隆存储库。git clone -c core.symlinks=true <URL>

用户回答回答于

Windows和基于Unix的主机、存储库和子模块混合在一起,有许多git符号链接,并且在MsysGit的发布版本中没有本地支持,解决方案如下:

在Windows上创建Git符号

用NTFS硬链+结取代git符号

在Windows上恢复Git符号链接

1. Can only be run from the root of the repo, else, weirdness happens...
2. Tab-based auto-completion is broken when typing out one of these aliases
3. If people forget to `git checkout-symlinks` before doing something like `git add -A`, they could **pollute the repo!**

参考资料:

http://git-scm.com/book/en/git-inals-Git-Objects

http://Technnet.microsoft.com/en-us/Library/cc753194

用户回答回答于

能使用以下命令:

git ls-files -s | awk '/120000/{print $4}'

建议将它们标记为git update-index --assume-unchanged,而不是将它们列在.git/info/exclude...

扫码关注云+社区

领取腾讯云代金券