Git reset - 硬头(恢复)不更新Windows中的符号链接目标

时间:2015-04-17 15:43:58

标签: windows git

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

mklink /H ..\xyz.txt xyz.txt

符号链接的目标不是git工作副本的一部分,并且不受版本控制(我还尝试过目标是工作副本层次结构的场景,并且在 .gitignore < / em>并遇到同样的问题。)

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

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

是什么解释了这种行为,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我通过替换

解决了这个问题
 mklink /H ..\xyz.txt xyz.txt

mklink ..\xyz.txt ..\xyz.txt

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