如果我有一个文件或目录是符号链接,并且我将其提交到 Git 存储库,那么它会发生什么情况?
我假设它会将其保留为符号链接,直到文件被删除,然后如果您从旧版本中拉回文件,它只会创建一个普通文件。
当我删除它引用的文件时它会做什么?它只是提交悬空链接吗?
From Linux 符号链接手册(假设你在 Linux 中):
符号链接是一种特殊类型的文件,其内容是一个字符串,该字符串是另一个文件(链接所引用的文件)的路径名。 (可以使用 readlink(2) 读取符号链接的内容。)
因此,符号链接是一个多文件,就像一个README.md
or a Makefile
。 Git 只是将链接的内容(即前面提到的链接到的文件系统对象的路径)存储在“blob”中,就像存储任何其他文件一样。然后,它将名称、模式和类型(包括它是符号链接的事实)存储在表示其包含目录的树对象中。
当您检出包含链接的树时,无论目标文件系统对象是否存在,它都会将该对象恢复为符号链接。
如果删除符号链接引用的文件,它不会以任何方式影响 Git 控制的符号链接。您将有一个悬空的参考。如果需要,用户可以删除或更改链接以指向有效的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)