我们的开发人员混合使用Windows和基于unix的操作系统。因此,在Unix机器上创建的符号链接成为Windows开发人员的一个问题。在Windows (MSysGit)中,符号链接被转换为一个文本文件,并带有它所指向的文件的路径。相反,我想将符号链接转换为实际的Windows符号链接。
我对此的(更新的)解决方案是:
编写一个检出后脚本,递归地查找“符号链接”文本文件。
将它们替换为Windows符号链接(使用mklink),具有与虚拟“symbolic link”相同的名称和扩展名
通过在文件.git/info/exclude中添加一个条目来忽略这些Windows符号链接
我还没有实现这个方法,但我相信这是解决这个问题的可靠方法。
如果有的话,你认为这种方法有什么缺点?
这个后签出脚本是可实现的吗?也就是说,我能递归地找到Git创建的虚拟“符号链接”文件吗?
因此,自从发布了很多这些答案以来,Git已经发生了变化,下面是正确的指令,以使符号链接在Windows中正确工作:
2018年8月
1. 确保Git安装时带有符号链接支持
2. 告诉Bash创建硬链接而不是符号链接
(git)文件夹/ etc / bash . bashrc
添加到底部- MSYS=winsymlinks:nativestrict
3.将Git配置设置为使用符号链接
git config core.symlinks true
or
git clone -c core.symlinks=true <URL>
注意:我已经尝试将其添加到全局Git配置中,但目前它对我来说并不适用,所以我建议将其添加到每个存储库中…
4. 提取存储库
注意:除非您在最新版本的Windows 10中启用了开发人员模式,否则您需要以管理员身份运行Bash来创建符号链接
5. 重置所有符号链接(可选)
如果您有一个现有的存储库,或者正在使用子模块,您可能会发现符号链接没有被正确地创建,因此可以运行这些命令来刷新存储库中的所有符号链接。
find -type l -delete
git reset --hard
注意:这将重置自上次提交以来的所有更改,所以请确保您已经先提交了
因此,自从发布了很多这些答案以来,Git已经发生了变化,下面是正确的指令,以使符号链接在Windows中正确工作:
2018年8月
1. 确保Git安装时带有符号链接支持
2. 告诉Bash创建硬链接而不是符号链接
(git)文件夹/ etc / bash . bashrc
添加到底部- MSYS=winsymlinks:nativestrict
3.将Git配置设置为使用符号链接
git config core.symlinks true
or
git clone -c core.symlinks=true <URL>
注意:我已经尝试将其添加到全局Git配置中,但目前它对我来说并不适用,所以我建议将其添加到每个存储库中…
4. 提取存储库
注意:除非您在最新版本的Windows 10中启用了开发人员模式,否则您需要以管理员身份运行Bash来创建符号链接
5. 重置所有符号链接(可选)
如果您有一个现有的存储库,或者正在使用子模块,您可能会发现符号链接没有被正确地创建,因此可以运行这些命令来刷新存储库中的所有符号链接。
find -type l -delete
git reset --hard
注意:这将重置自上次提交以来的所有更改,所以请确保您已经先提交了