我有一个NTFS分区,其中包含我的数据,在两个操作系统之间共享(我是Linux和Windows双重启动)。我有一个已经使用Linux一段时间的存储库,在我尝试在Windows上打开该存储库之前,一切都很好。我注意到即使没有进行任何更改,我也未进行阶段性更改。如果我提交它们并从Linux打开存储库,则我将进行另一组未分段的更改,并且该循环还在继续。提交显示的更改时,将列出mode change [some #] => [some other #] [file name]
所有跟踪文件的列表。
我见过有人说,在不同的操作系统之间共享存储库不是一个好主意,但不说为什么。有人可以解释为什么会发生这种情况,以及是否可以解决(如果可能的话,不使用其他存储库)。
PS。是的,如果这有任何不同,我正在使用Github来托管仓库。
Git将有关文件的信息存储在索引中的工作树中。存储在索引中的部分数据是有关每个文件的设备和索引节点的信息。此信息因操作系统而异,因为不同的操作系统对它们的设备进行编号不同。因此,跨操作系统共享工作树至少会导致在git status
切换操作系统后在运行时需要重新读取所有文件或某些其他命令。
另外,Linux在文件系统中保留可执行权限,而Windows没有。因为NTFS是Windows文件系统,所以它不维护可执行权限。Linux只能假设每个文件都是可执行文件,因此您的提交会导致许多无法有效执行的文件被标记为可执行文件。这就是权限似乎更改的原因。
通常,NTFS对于Linux来说不是一个好的文件系统。最好使用UDF文件系统,该文件系统在Linux和Windows上均可使用,但可以保留和使用POSIX权限。
如前所述,您将在跨操作系统共享工作树时遇到问题。UDF可以使其正常运行并避免当前的切换权限问题,但仍不建议使用此解决方案,您应避免使用它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句