我在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
路径,否则链接将不起作用。