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