git引发的inode变化

Submitted by Dot on Tue, 08/23/2016 - 17:20

本文暂只说明现象,原因则有待研究。

我们删掉git目录下的一个文件foo1,如果foo1是其他文件foo的硬链接,此时虽然可以用git checkout foo1恢复文件,但恢复出来的这个foo1拥有的是不同的inode,和目标文件foo已失去了对应关系,俨然一个新文件。这倒不难理解。

但如果说这一举动会导致目标文件foo的inode也发生变化,就有些匪夷所思了。
来看看下面这个例子。