У меня есть клон. Я хочу уменьшить историю на нем, без клонирования с нуля с уменьшенной глубиной. Пример работы:
$ git clone [email protected]:apache/spark.git
# ...
$ cd spark/
$ du -hs .git
193M .git
Хорошо, так что не так, но, но это послужит для этого обсуждения. Если я попробую gc
, он станет меньше:
$ git gc --aggressive
Counting objects: 380616, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (278136/278136), done.
Writing objects: 100% (380616/380616), done.
Total 380616 (delta 182748), reused 192702 (delta 0)
Checking connectivity: 380616, done.
$ du -hs .git
108M .git
Тем не менее, довольно большой (git pull предполагает, что он все еще нажимается/снимается на пульте дистанционного управления). Как насчет repack?
$ git repack -a -d --depth=5
Counting objects: 380616, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (95388/95388), done.
Writing objects: 100% (380616/380616), done.
Total 380616 (delta 182748), reused 380616 (delta 182748)
Pauls-MBA:spark paul$ du -hs .git
108M .git
Yup, не стал меньше. --depth для repack для клона не тождественно:
$ git clone --depth 1 [email protected]:apache/spark.git
Cloning into 'spark'...
remote: Counting objects: 8520, done.
remote: Compressing objects: 100% (6611/6611), done.
remote: Total 8520 (delta 1448), reused 5101 (delta 710), pack-reused 0
Receiving objects: 100% (8520/8520), 14.82 MiB | 3.63 MiB/s, done.
Resolving deltas: 100% (1448/1448), done.
Checking connectivity... done.
Checking out files: 100% (13386/13386), done.
$ cd spark
$ du -hs .git
17M .git
Git pull говорит, что он все еще находится на шаг с пультом, что никого не удивляет.
ОК - так как изменить существующий клон на мелкий клон, не прикрепили его и не заново заново забыли?