読み取り専用ファイルシステムの内容をリモートGitリポジトリにプッシュする

読み取り専用ファイルシステムの内容をリモートGitリポジトリにプッシュする

定期的にリモートgitストレージにデータをプッシュする必要があるシステムA(sftp / sshfsを介してサーバーBからリモートで読み取り専用マウント)にファイルシステムがあります。

ローカルディレクトリをリポジトリ自体に変換せずに(ローカルにマウントされた読み取り専用ファイルに書き込む必要があります)、ディレクトリ(およびサブディレクトリ)の内容を取得してリモートリポジトリにプッシュするgitコマンドは見つかりません。 )ディレクトリのみ)。

サーバーAのリモートディレクトリのマウントポイントの上にoverridefsを置くことは可能かもしれませんが、lowerdirの変更を読みました(ここで〜するサーバーBで発生する問題は、時々コンピュータ(A)を再起動しなければ解決できない古いファイルハンドルに問題を引き起こす可能性があります。

プッシュする必要があるデータ量が多いため、それをローカルマシンAにコピーしてそこでgit pushを実行することは一時的に不可能です。

編集:ファイルは、gitリポジトリにアクセスできない限られたネットワーク上のサーバーBでホストされています。

ベストアンサー1

Gitは、データを保存するリポジトリがないと、ディレクトリの内容をリモートサーバーにプッシュできません。ただし、Gitディレクトリを別のディスクまたはパーティションに保存したい場合は、これを行うことができます。

GIT_DIR使用するディレクトリ.gitGIT_WORK_TREE作業ツリーとして使用するディレクトリ(コミットしたいデータを含むディレクトリ)を指すように環境変数を設定することでこれを行うことができます。その後、git initストレージの初期化git addなどをgit commit含むGitコマンドを正常に実行できます。

ただし、これにより、オブジェクトがローカルシステムに書き込まれて圧縮されていても、一部のディスク容量が消費されます。しかし、これはおそらく作業ツリーよりはるかに少ないでしょう。ディスク容量が大きすぎると、残念ながら必要な操作を実行できず、他のアプローチを取る必要があります。

おすすめ記事