Хорошо, приблизительно 700 фиксаций назад (> 30 дней) я случайно сохранил ThirdParty/mapper/Songbird_1.2.0-1146_windows-i686-msvc8.exe (тип iTunes загрузки) в моем локальном репозитории Мерзавца без того, чтобы замечать, которое было также продвинуто в удаленный размещенный репозиторий мерзавца, я заметил на днях, что repo был сверх 200 МБ, пока я ожидал приблизительно 20 МБ.
Я следовал инструкциям в: http://github.com/guides/completely-remove-a-file-from-all-revisions
А также рабочий gc мерзавца - агрессивный - чернослив, но локальный каталог остается сверх 200 МБ. Прежде чем я смогу отсортировать удаленный repo, я должен отсортировать свое локальное, есть ли что-то специальное о моем случае (т.е. крупный файл, давным-давно фиксируйте). Как я могу полностью удалить этот файл и понизить каталог до корректного размера?
Примечание для предотвращения миграции: Я чувствую, что это больше подходит для StackOverflow, так как Мерзавец является, прежде всего, локальным инструментом разработчиков в данный момент, поддерживаемое сообщество и не часть любых основных дистрибутивов или ожидание системных администраторов, т.е. в моменты dev знает администратора мерзавца лучшее.
/table/tr/td [text () = "One" ]/following-sibling:: td [1]
"Первый td
последующий узел td
с текстом One
"
Обновлять как можно чаще. По крайней мере каждое утро. И каждый раз, когда тебе говорят твои товарищи по команде. Каждый раз, когда вы знаете, что кто-то совершил что-то в районе, где вы работаете.
Перед фиксацией. Никогда ничего не фиксируйте до тех пор, пока не будете обновлены до последней версии репозитория и не убедитесь, что фиксация ничего не нарушит.
Я написал об аналогичной проблеме в "git: shrinking Subversion import".
git filter-branch
manpage имеет контрольный список для сокращения репозитория, который рекомендует запуститьfilter-branch
и затем клонировать, чтобы оставить после себя cruft.Клонирование с помощью пути к файловой системе создает жесткие ссылки, поэтому используйте URL-адрес:
$ git clone file :///home/gbacon/src/dBTools.git
Даже после этого некоторые большие неназванные блобы пережили клона. Спасибо # git on freenode за предложение об акцизе рефлога:
$ git reflog expire --verbose --expire = 0 --all $ git gc --принятие = 0