假设我git
在有限的磁盘分区(比如拇指驱动器)上有一个 repo。
假设我最后一次推送到那个 repo 失败了,因为当前分区被填满了。
假设我尝试用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
现在,在同一台机器上,我有另一个分区,它有足够的空间;我知道我可以在那里克隆这个 repo,并在gc
那里运行,然后将 repo 从另一个分区复制回/写入到第一个分区。
但我想知道:相反,有没有办法,我可以指示git
对它需要写入的任何临时文件使用“另一个分区”,而我git gc
在原始分区上的 repo 中调用 - 结果是在操作完成后,git
会删除“另一个分区”上的临时文件;并且它会在“原始分区”回购中修改/删除/添加所有必要的文件(如果可能的话,影响空间回收)?