在windows和linux之间使用相同的git存储库会导致额外的提交
我有一个NTFS分区,其中包含我的数据,在两个操作系统之间共享。我正在双引导Linux和Windows。我有一个使用Linux开发了一段时间的存储库,一切都很好,直到我尝试在windows上打开存储库。我注意到我有一些未老化的变化,尽管我什么都没有改变。如果我提交它们并从Linux打开存储库,我会有另一组未老化的更改,并且循环会继续。提交出现的更改时,会列出所有跟踪文件的模式更改[some]=>[some other][文件名] 我看到一些人说,在不同的操作系统之间共享存储库不是一个好主意,但没有说明原因。有人能解释一下为什么会发生这种情况,如果可能的话,不使用其他存储库也能解决吗在windows和linux之间使用相同的git存储库会导致额外的提交,linux,windows,git,github,version-control,Linux,Windows,Git,Github,Version Control,我有一个NTFS分区,其中包含我的数据,在两个操作系统之间共享。我正在双引导Linux和Windows。我有一个使用Linux开发了一段时间的存储库,一切都很好,直到我尝试在windows上打开存储库。我注意到我有一些未老化的变化,尽管我什么都没有改变。如果我提交它们并从Linux打开存储库,我会有另一组未老化的更改,并且循环会继续。提交出现的更改时,会列出所有跟踪文件的模式更改[some]=>[some other][文件名] 我看到一些人说,在不同的操作系统之间共享存储库不是一个好主意,但没
是的,如果这有什么不同的话,我正在使用Github来托管repo。Git将有关工作树中文件的信息存储在索引中。索引中存储的部分数据是关于每个文件的设备和inode的信息。此信息因操作系统而异,因为不同的操作系统对其设备的编号不同。因此,在操作系统之间共享工作树至少会导致在切换操作系统后运行git status或某些其他命令时需要重新读取所有文件 此外,Linux在文件系统中保留可执行权限,而Windows则不保留。因为NTFS是Windows文件系统,所以它不维护可执行权限。Linux只能假设每个文件都是可执行的,因此您的提交会导致许多无法有效执行的文件被标记为可执行文件。这就是权限似乎发生变化的原因 一般来说,NTFS对于Linux不是一个好的文件系统。您最好使用UDF文件系统,它可以在Linux和Windows上工作,但可以保留和使用POSIX权限
如前所述,您在跨操作系统共享工作树时会遇到问题。UDF可以使其正常工作并避免当前切换权限的问题,但它仍然不是推荐的解决方案,您应该避免它。Git将有关工作树中文件的信息存储在索引中。索引中存储的部分数据是关于每个文件的设备和inode的信息。此信息因操作系统而异,因为不同的操作系统对其设备的编号不同。因此,在操作系统之间共享工作树至少会导致在切换操作系统后运行git status或某些其他命令时需要重新读取所有文件 此外,Linux在文件系统中保留可执行权限,而Windows则不保留。因为NTFS是Windows文件系统,所以它不维护可执行权限。Linux只能假设每个文件都是可执行的,因此您的提交会导致许多无法有效执行的文件被标记为可执行文件。这就是权限似乎发生变化的原因 一般来说,NTFS对于Linux不是一个好的文件系统。您最好使用UDF文件系统,它可以在Linux和Windows上工作,但可以保留和使用POSIX权限
如前所述,您在跨操作系统共享工作树时会遇到问题。UDF可以使其正常工作并避免当前切换权限的问题,但它仍然不是推荐的解决方案,您应该避免它。谢谢,不幸的是,UDF不是一个选项。但是考虑到你所说的,我可以阻止git跟踪某个操作系统(例如Windows)中的权限更改吗。但考虑到您所说的,我可以阻止git跟踪其中一个操作系统(例如Windows)中的权限更改吗。