在git回购中安装EFS,可能会出现什么问题?

在git回购中安装EFS,可能会出现什么问题?,git,amazon-efs,Git,Amazon Efs,我有一个相当大的代码库,名为git跟踪的我的惊人项目。其中一个子目录,my Azing project/efs stuff/,包含注定要在AWS efs目录中运行的Python脚本。与其每次更改这些文件时都手动将它们从我的git repo复制到EFS,不如将EFS挂载到我的神奇项目/EFS stuff/?从gits的角度来看,它将与任何其他目录一样,其中不应该有git内容,因为这些内容都在顶级目录中,而像Pycharm这样的IDE也应该保持子目录相当干净 这个策略是否存在我忽略的一些严重问题,或

我有一个相当大的代码库,名为git跟踪的
我的惊人项目
。其中一个子目录,
my Azing project/efs stuff/
,包含注定要在AWS efs目录中运行的Python脚本。与其每次更改这些文件时都手动将它们从我的git repo复制到EFS,不如将EFS挂载到
我的神奇项目/EFS stuff/
?从gits的角度来看,它将与任何其他目录一样,其中不应该有git内容,因为这些内容都在顶级目录中,而像Pycharm这样的IDE也应该保持子目录相当干净


这个策略是否存在我忽略的一些严重问题,或者EFS装载在git跟踪目录下是否是一件相当安全的事情?

一般来说,这不是一个好主意。Git不希望您的数据分布在文件系统中,您可能会得到意想不到的结果

如果您的EFS没有装载,那么Git会将文件签出到非EFS目录中,当您装载EFS卷时,该目录将消失。此外,某些文件系统不喜欢在非空目录上装载,因此在这种情况下,EFS卷可能无法装载

此外,Git将设备和inode存储到索引中。如果设备或inode编号发生更改(例如,由于重新装载),Git将刷新所有这些文件,认为它们可能已被更改。这可能很慢

在EFS卷中,您还需要跨文件系统设置环境变量
GIT\u DISCOVERY\u,因为在查找
.GIT
目录时,默认情况下GIT不会遍历装入点

更好的处理方法是将EFS目录装载到另一个目录,然后在EFS装载上执行从存储库到存储库的本地推送(后者可能使用
receive.denyCurrentBranch
设置为
updateinstad
)。这意味着您必须显式地推送,但推送速度很快,可以在本地计算机上进行,而且您不必担心跨文件系统工作的问题