在Windows和Linux之间使用相同的git存储库会导致额外的提交

伊斯梅尔·沙欣(Ismail Shaheen)

我有一个NTFS分区,其中包含我的数据,在两个操作系统之间共享(我是Linux和Windows双重启动)。我有一个已经使用Linux一段时间的存储库,在我尝试在Windows上打开该存储库之前,一切都很好。我注意到即使没有进行任何更改,我也未进行阶段性更改。如果我提交它们并从Linux打开存储库,则我将进行另一组未分段的更改,并且该循环还在继续。提交显示的更改时,将列出mode change [some #] => [some other #] [file name]所有跟踪文件的列表

我见过有人说,在不同的操作系统之间共享存储库不是一个好主意,但不说为什么。有人可以解释为什么会发生这种情况,以及是否可以解决(如果可能的话,不使用其他存储库)。

PS。是的,如果这有任何不同,我正在使用Github来托管仓库。

bk2204

Git将有关文件的信息存储在索引中的工作树中。存储在索引中的部分数据是有关每个文件的设备和索引节点的信息。此信息因操作系统而异,因为不同的操作系统对它们的设备进行编号不同。因此,跨操作系统共享工作树至少会导致在git status切换操作系统后在运行时需要重新读取所有文件或某些其他命令。

另外,Linux在文件系统中保留可执行权限,而Windows没有。因为NTFS是Windows文件系统,所以它不维护可执行权限。Linux只能假设每个文件都是可执行文件,因此您的提交会导致许多无法有效执行的文件被标记为可执行文件。这就是权限似乎更改的原因。

通常,NTFS对于Linux来说不是一个好的文件系统。最好使用UDF文件系统,该文件系统在Linux和Windows上均可使用,但可以保留和使用POSIX权限。

如前所述,您将在跨操作系统共享工作树时遇到问题。UDF可以使其正常运行并避免当前的切换权限问题,但仍不建议使用此解决方案,您应避免使用它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用本地和远程Git存储库之间的差异创建单个提交?

来自分类Dev

在MVC控制器之间使用相同的存储过程

来自分类Dev

Linux和Windows之间共享存储库的问题

来自分类Dev

为什么从特定的GitHub存储库合并到本地Git存储库会导致本地存储库中未提交的更改?

来自分类Dev

在 Openshift 构建期间使用真正的 git 存储库?

来自分类Dev

在Windows主机和Linux来宾之间使用Hyper-V套接字

来自分类Dev

在OSX和Linux之间使用哪个文件系统

来自分类Dev

在Cygwin Git和Windows的Git中处理EOL字符访问相同的存储库

来自分类Dev

在活动之间使用相同的对象

来自分类Dev

在页面之间使用相同的视图

来自分类Dev

维护Windows和Linux的本地存储库

来自分类Dev

从存储库过滤git提交

来自分类Dev

如何在Windows设备之间使用相同的随机种子?

来自分类Dev

使用erlang wx模块会导致错误:检测到程序和库构建版本之间的不匹配

来自分类Dev

具有相同历史记录的git和Mercurial存储库中的提交会具有相同的哈希值吗?

来自分类Dev

在本地站点之间使用GIT

来自分类Dev

使用Visual Studio和Git。如何将新文件夹提交到我的Git存储库?

来自分类Dev

mysql 在准备好的语句结果和调用的存储过程结果之间使用 UNION

来自分类Dev

如何在OSX和Windows的外部FAT驱动器上使用相同的存储库?

来自分类Dev

如何使用git存储库中已存在的文件创建新的git存储库,并保持提交

来自分类Dev

使用Git扩展名和gitolite在Windows Server上托管私有GIT存储库

来自分类Dev

如何在本地和云执行之间使用不同的数据库

来自分类Dev

暂存更改和HEAD存储库之间的git diff

来自分类Dev

在本地、远程和存储库之间正确设置 Git

来自分类Dev

在Windows服务和Windows应用程序之间使用EventWaitHandles

来自分类Dev

在Windows服务和Windows应用程序之间使用EventWaitHandles

来自分类Dev

为什么git reset&push在远程名和分支名之间使用斜杠与空格?

来自分类Dev

Git子模块-无法使用Windows的Linux子系统访问存储库

来自分类Dev

2个提交如何在git存储库中具有相同的文件信息?

Related 相关文章

  1. 1

    如何使用本地和远程Git存储库之间的差异创建单个提交?

  2. 2

    在MVC控制器之间使用相同的存储过程

  3. 3

    Linux和Windows之间共享存储库的问题

  4. 4

    为什么从特定的GitHub存储库合并到本地Git存储库会导致本地存储库中未提交的更改?

  5. 5

    在 Openshift 构建期间使用真正的 git 存储库?

  6. 6

    在Windows主机和Linux来宾之间使用Hyper-V套接字

  7. 7

    在OSX和Linux之间使用哪个文件系统

  8. 8

    在Cygwin Git和Windows的Git中处理EOL字符访问相同的存储库

  9. 9

    在活动之间使用相同的对象

  10. 10

    在页面之间使用相同的视图

  11. 11

    维护Windows和Linux的本地存储库

  12. 12

    从存储库过滤git提交

  13. 13

    如何在Windows设备之间使用相同的随机种子?

  14. 14

    使用erlang wx模块会导致错误:检测到程序和库构建版本之间的不匹配

  15. 15

    具有相同历史记录的git和Mercurial存储库中的提交会具有相同的哈希值吗?

  16. 16

    在本地站点之间使用GIT

  17. 17

    使用Visual Studio和Git。如何将新文件夹提交到我的Git存储库?

  18. 18

    mysql 在准备好的语句结果和调用的存储过程结果之间使用 UNION

  19. 19

    如何在OSX和Windows的外部FAT驱动器上使用相同的存储库?

  20. 20

    如何使用git存储库中已存在的文件创建新的git存储库,并保持提交

  21. 21

    使用Git扩展名和gitolite在Windows Server上托管私有GIT存储库

  22. 22

    如何在本地和云执行之间使用不同的数据库

  23. 23

    暂存更改和HEAD存储库之间的git diff

  24. 24

    在本地、远程和存储库之间正确设置 Git

  25. 25

    在Windows服务和Windows应用程序之间使用EventWaitHandles

  26. 26

    在Windows服务和Windows应用程序之间使用EventWaitHandles

  27. 27

    为什么git reset&push在远程名和分支名之间使用斜杠与空格?

  28. 28

    Git子模块-无法使用Windows的Linux子系统访问存储库

  29. 29

    2个提交如何在git存储库中具有相同的文件信息?

热门标签

归档