Сквош Гит история - PullRequest
       4

Сквош Гит история

3 голосов
/ 07 декабря 2010

У меня есть большое старое git-репо с большим количеством двоичных файлов, размещенных на локальном сервере Redmine. Я хотел бы объединить все комментарии до определенной даты (6 или 12 месяцев назад) вместе, чтобы сэкономить на размере моего репо.

Есть ли способ сделать это?

1 Ответ

3 голосов
/ 07 декабря 2010

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

Теперь вы можете удалять коммиты, используя git rebase. Это медленно и больно, но это может сработать. Вы также можете использовать git filter-branch для удаления всех двоичных файлов. Я должен был сделать это на репо сам, и это довольно легко. Если все ваши двоичные файлы находятся в одном каталоге, вы можете использовать флаг --subdirectory в git filter-branch (конечно, прочитайте страницу помощи), чтобы удалить все из этого подкаталога во всех коммитах в заданном диапазоне обратно через историю , Если они разбросаны, то вы можете дать git filter-branch командную строку оболочки или shell-скрипт для выполнения при каждом коммите, и этот скрипт может пройти и избавиться от двоичных файлов и всего, что вы хотели бы удалить или изменить , Опять же, смотрите страницу справки. Но я думаю, что git filter-branch - определенно способ пойти в такой ситуации.

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