我在系统 A 上有一个(通过 sftp/sshfs 从服务器 B 远程只读安装)文件系统,其中的数据需要定期推送到远程 git 存储库。
我无法找到一个 git 命令,它只获取目录(及其子目录)的内容并将其推送到远程存储库,而不将本地目录转换为存储库本身(这需要写入本地安装的只读文件)仅目录)。
也许可以在服务器 A 上的远程目录挂载点之上放置一个 overridefs,但我读到了 lowerdir 上的更改(其中将要发生在服务器 B 上的情况有时可能会导致陈旧文件句柄出现问题,而这些问题有时只能通过重新启动计算机 (A) 来修复。
由于需要推送的数据量很大,暂时无法将其复制到本地机器A并从那里进行git推送。
编辑:这些文件托管在受限网络中的服务器 B 上,无法访问 git 存储库。
答案1
如果没有某种存储库来存储数据,Git 无法将目录的内容推送到远程服务器。但是,如果您想将 Git 目录存储在不同的磁盘或分区上,则可以这样做。
为此,您可以将环境变量设置GIT_DIR
为指向您想要使用的目录,.git
并GIT_WORK_TREE
指向您想要用作工作树的目录(这将是包含您想要的数据的目录)犯罪)。然后,您可以正常运行 Git 命令,包括git init
初始化存储库git add
等git commit
。
但是,这将导致对象被写入本地系统,这将占用一些磁盘空间,即使它们会被压缩。不过,这可能会比工作树少得多。如果磁盘空间量太大,那么不幸的是,您无法执行您想要执行的操作,并且您将不得不采用不同的方法。