Git reset --hard head(还原)不更新 Windows 中的符号链接目标



我在Windows 7中创建了一个符号链接,指向一个名为xyz的版本控制文件.txt如下所示:

mklink /H ..xyz.txt xyz.txt

符号链接的目的地不是 git 工作副本的一部分,并且不受版本控制(我也尝试过目标成为工作副本层次结构的一部分的情况,并且在 .gitignore 中遇到同样的问题)。

当我更改符号链接两侧的文件内容时,它工作正常。

但是,当我还原文件(例如使用 git reset --hard HEAD )时,符号链接的目标不会像我预期的那样更新到文件的未修改版本。

如何解释此行为,我该如何解决它?

我通过替换解决了这个问题

 mklink /H ..xyz.txt xyz.txt

mklink ..xyz.txt ..xyz.txt

用标准符号链接替换硬链接使还原功能正常工作。一个重要的问题是要注意标准符号链接(不带/H)需要source参数路径相对于destination路径,否则链接将不起作用。

最新更新