从回购中克隆时Windows更改symlink文件

问题描述

我有一个git reposetory,其中包含一些符号链接。通常在Linux环境中使用。 但是,当将存储库克隆到Windows时,其中一个符号链接就会更改,因此无法使用docker在Windows上进行构建。

问题很简单。我有这样一个符号链接:localtime -> /etc/localtime

但是,将文件克隆到Windows系统后,它将更改为:localtime -> c:/etc/localtime

当我尝试使用它进行构建时,这会断开符号链接,因为从Windows进行的构建不起作用。我的Linux版本中的符号链接将更改为/c/etc/localtime,而不是/etc/localtime

Git甚至似乎都没有注册此更改,因为git status表示所有文件都是最新的,即使此文件与回购文件中的文件明显不同

有什么方法可以阻止Windows在克隆后自动更改此文件? 还是将其更改为相对路径是唯一的选择?

解决方法

您可以从索引中删除符号链接,并添加脚本(bash,python或其他任何东西)来生成符号链接。

在克隆后手动运行此脚本或创建一个挂钩。与其他文件(包括符号链接)相比,Git处理文本文件要好得多。

如果您使用docker build,则可以进行设置以在克隆后继续运行此symlink-creation步骤。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...