git
限られたディスク パーティション (サムドライブなど) にリポジトリがあるとします。
現在のパーティションがいっぱいになったために、そのリポジトリへの最後のプッシュが失敗したとしましょう。
git gc
;でスペースを取り戻そうとするとしましょう。その後git gc
も失敗します:
$ git gc --prune=now
fatal: failed to write ref-pack file: No space left on device
error: failed to run pack-refs
今、同じマシンに、十分なスペースがある別のパーティションがあります。そこでこのレポを複製してそこで実行gc
し、別のパーティションから最初のパーティションにレポをコピーして書き戻すことができることを認識しています。
しかし、私は疑問に思っていました:代わりに、元のパーティションのレポ内でgit
呼び出している間に、書き込む必要のある一時ファイルに「別のパーティション」を使用するように指示する方法はありますか?その結果、操作が完了した後にgit gc
、git
「別のパーティション」の一時ファイルを削除したでしょう。そして、「元のパーティション」レポで必要なすべてのファイルを変更/削除/追加しました(可能であれば、スペースの再利用に影響します)?