Могу ли я отменить нежелательные / ненужные коммиты из локального репозитория Git? - PullRequest
3 голосов
/ 11 октября 2019

Я работаю с локальным потомком канонического огромного репозитория Git, исходного кода ядра Linux (66k файлов, 870k + коммитов, 3 ГБ: нравится). Конечно, многие задачи занимают много времени на моей машине, на которой все не так уж и плохо, что является реальной проблемой, поскольку я работаю над обновлением своего (настроенного) ядра.

Я бы хотел отменить каждый коммитстарше, скажем, 2014 года, что уменьшило бы количество коммитов на 60%:

mbpe:linux griscom$ git log --format="%ad" --date="short" | cut -c1-4 | sort | uniq -c
   1 1970
   2 2001
  12 2002
   1 2003
  17 2004
16697 2005
29255 2006
33757 2007
48825 2008
52600 2009
49814 2010
56403 2011
65393 2012
71002 2013
75652 2014
75801 2015
77040 2016
80797 2017
79977 2018
58296 2019
   1 2030
   1 2037
   1 2085
mbpe:linux griscom$ 

Но мне все еще нужен репозиторий, чтобы полностью функционировать для последующих коммитов;Мне нужно было бы иметь возможность тянуть и нажать как обычно (понимая, что некоторые операции не могут быть завершены из-за возраста родительских коммитов).

Есть ли способ обработать Git-репозиторий так, чтобы античныйкоммиты удалены или, по крайней мере, не замедляют команды Git?

1 Ответ

1 голос
/ 11 октября 2019

То, что вы хотите, называется «мелкий клон». Вы можете найти информацию об этом в документации git clone (https://git -scm.com / docs / git-clone ). Обычно я использую опцию depth, но, похоже, вы предпочитаете --shallow-since

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...